Пользовательский серверный элемент управления не содержит в себе HTML разметки, это C# класс, который описывает процесс создания HTML разметки.
ClassLibrary1/Class1.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; //подключить сборку //добавить ссылку using System.Web; using System.Web.UI; namespace ClassLibrary1 { public class MyControl1 : Control { //переопределяем метод protected override void Render(HtmlTextWriter write) { base.Render(write); write.Write("Hello World!"); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; //подключить сборку //добавить ссылку using System.Web; using System.Web.UI; namespace ClassLibrary1 { public class MyControl1 : Control { //переопределяем метод protected override void Render(HtmlTextWriter write) { base.Render(write); write.Write("Hello World!"); } } }
ServerControl1/ServerControl1.cs
using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace ServerControl1 { [DefaultProperty("Text")] [ToolboxData("<{0}:ServerControl1 runat=server></{0}:ServerControl1>")] public class ServerControl1 : WebControl { [Bindable(true)] [Category("Appearance")] [DefaultValue("")] [Localizable(true)] public string Text { get { String s = (String)ViewState["Text"]; return ((s == null)? "[" + this.ID + "]" : s); } set { ViewState["Text"] = value; } } protected override void RenderContents(HtmlTextWriter output) { output.Write("Привет Мир!"); } } }
using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace ServerControl1 { [DefaultProperty("Text")] [ToolboxData("<{0}:ServerControl1 runat=server></{0}:ServerControl1>")] public class ServerControl1 : WebControl { [Bindable(true)] [Category("Appearance")] [DefaultValue("")] [Localizable(true)] public string Text { get { String s = (String)ViewState["Text"]; return ((s == null)? "[" + this.ID + "]" : s); } set { ViewState["Text"] = value; } } protected override void RenderContents(HtmlTextWriter output) { output.Write("Привет Мир!"); } } }
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <%-- нужно добавить ссылку на библиотеку --%> <%-- регистрация пользовательского серверного элемента управления --%> <%-- Assembly - название библиотеки --%> <%-- Namespace - название пространства имен --%> <%-- TagPrefix - префикс --%> <%@ Register Assembly="ClassLibrary1" Namespace="ClassLibrary1" TagPrefix="mycontrol1" %> <%-- нужно добавить ссылку на библиотеку --%> <%-- регистрация пользовательского серверного элемента управления --%> <%-- Assembly - название библиотеки --%> <%-- Namespace - название пространства имен --%> <%-- TagPrefix - префикс --%> <%@ Register Assembly="ServerControl1" Namespace="ServerControl1" TagPrefix="mycontrol2" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta charset="utf-8" /> <title></title> </head> <body> <form id="form1" runat="server"> <div> <%-- пользовательский серверный элемент управления --%> <%-- самостояетельно добавляем ID и runat --%> <mycontrol1:MyControl1 ID="MyControl1" runat="server"></mycontrol1:MyControl1> <br /> <%-- пользовательский серверный элемент управления --%> <%-- самостояетельно добавляем ID и runat --%> <mycontrol2:ServerControl1 ID="ServerControl1" runat="server" /> </div> </form> </body> </html>
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <%-- нужно добавить ссылку на библиотеку --%> <%-- регистрация пользовательского серверного элемента управления --%> <%-- Assembly - название библиотеки --%> <%-- Namespace - название пространства имен --%> <%-- TagPrefix - префикс --%> <%@ Register Assembly="ClassLibrary1" Namespace="ClassLibrary1" TagPrefix="mycontrol1" %> <%-- нужно добавить ссылку на библиотеку --%> <%-- регистрация пользовательского серверного элемента управления --%> <%-- Assembly - название библиотеки --%> <%-- Namespace - название пространства имен --%> <%-- TagPrefix - префикс --%> <%@ Register Assembly="ServerControl1" Namespace="ServerControl1" TagPrefix="mycontrol2" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta charset="utf-8" /> <title></title> </head> <body> <form id="form1" runat="server"> <div> <%-- пользовательский серверный элемент управления --%> <%-- самостояетельно добавляем ID и runat --%> <mycontrol1:MyControl1 ID="MyControl1" runat="server"></mycontrol1:MyControl1> <br /> <%-- пользовательский серверный элемент управления --%> <%-- самостояетельно добавляем ID и runat --%> <mycontrol2:ServerControl1 ID="ServerControl1" runat="server" /> </div> </form> </body> </html>