пользовательский серверный элемент управления

Пользовательский серверный элемент управления не содержит в себе 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!");
  }
 }
}
Скрыть

Показать

Копировать
  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("Привет Мир!");
  }
 }
}
Скрыть

Показать

Копировать
  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>