---
title: "CodeBehind i UserControls"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/86819-codebehind-i-usercontrols"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Engine^"
published: "2003-09-24T00:49:55.000Z"
updated: "2003-09-24T16:52:36.000Z"
replies: 3
views: 213
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/86819-codebehind-i-usercontrols"
---

# CodeBehind i UserControls

## #1 — Engine^, 2003-09-24T00:49Z

Hur kan jag använda codebehind i .ascx? Jag har suttit och testat en del nu, men jag kommer endast fram till felmeddelandet:

**Parser Error Message:** 'cClass' is not a valid base class because it does not extend class 'System.Web.UI.UserControl'.

och jag förstår inte riktigt vad det menar förutom att inte riktigt fungerar som jag fått för mig

```
<%@ Control Language="C#" Src="/usercontrol.ascx.cs" Inherits="cClass" %>
```

Jag hade ju tänkt att man lite smidigt skulle kunna busa med kontrollen, när den har lästs in, med hjälp av

```
[blue]// usercontrol.ascx.cs[/blue]
using System;
using System.Web.UI;

public class cClass : Page
{
  public void Page_Load(object objSrc, EventArgs e)
  {
    this.[i]usercontrol.table.td.property = somevalue[/i] [blue]// <-- eller något[/blue]
  }
}
```

Page_Load kanske inte är rätt alternativ, men det förklarar nog lite hur jag tänker ;)

Nåväl, går det att använda codebehind på det här sättet eller är det att feltolka uppdelningen av lager?

Permalänk: https://www.webforum.nu/p/86819

## #2 — Gladh, 2003-09-24T06:32Z

precis som det står i ditt felmeddelande så skall du inte ärva från Page utan från System.web.Ui.UserControl

```
namespace WebApplication1
{
	using System;
	using System.Data;
	using System.Drawing;
	using System.Web;
	using System.Web.UI.WebControls;
	using System.Web.UI.HtmlControls;

	/// <summary>
	///		Summary description for WebUserControl1.
	/// </summary>
	public abstract class WebUserControl1 : System.Web.UI.UserControl
	{

		private void Page_Load(object sender, System.EventArgs e)
		{
			// Put user code to initialize the page here
		}

		#region Web Form Designer generated code
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: This call is required by the ASP.NET Web Form Designer.
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		///		Required method for Designer support - do not modify
		///		the contents of this method with the code editor.
		/// </summary>
		private void InitializeComponent()
		{
			this.Load += new System.EventHandler(this.Page_Load);
		}
		#endregion
	}
```

\- Magnus

Permalänk: https://www.webforum.nu/p/1165320

## #3 — Engine^, 2003-09-24T08:08Z

Man tackar. Jag har för mig att jag testade något liknande inatt, men jag var nog för trött för att begripa vad jag gjorde. :)

Permalänk: https://www.webforum.nu/p/1165383

## #4 — Engine^, 2003-09-24T16:52Z

Följdfråga: Varför lägger Visual till *abstract* i klassen?

Jag läste lite på MSDN om [Abstract classes](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/csspec/html/CSharpSpecStart.asp) och kan väl inte påstå att jag förstog mer än *...used to indicate that a class is incomplete and that it is intended to be used only as a base class...* Det kan väl vara logiskt i det här fallet, men det fungerar ju utan problem även om man skippar *abstract*.

Permalänk: https://www.webforum.nu/p/1165755

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/86819-codebehind-i-usercontrols
