下面构建一个完全生成的基础控件,该控件需要从System.Web.UI.Control类派生,并且需要指定所有呈现到浏览器的HTML内容,呈现的内容是在该控件类中重写Render方法指定。
Code
1 using System.Web.UI;
2
3 namespace myControls
4 {
5 public class FullyRenderedControl : Control
6 {
7 private string _Text2;
8
9 public string Text2
10 {
11 get { return _Text2; }
12 set { _Text2 = value; }
13 }
14
15 protected override void Render(HtmlTextWriter writer)
16 {
17 writer.Write(_Text2);
18 }
19 }
20 }
把上面代码文件添加到App_Code文件夹中,因为这个文件夹中的代码都将被动态编译。
通过HtmlTextWriter的Write方法,可以将指定内容输出到浏览器上。
下面代码展示了如何在页面中使用上面生成的新控件。
Code
<%@ Page Language="C#" %>
<%@ Register TagPrefix="custom" Namespace="myControls" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Show Fully Rendered Control</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<custom:FullyRenderedControl
ID="FullyRenderedControl1"
Text2="Hello World!"
runat="Server" />
</div>
</form>
</body>
</html>
上面代码注册自定义控件是在页面中进行,也可以在Web配置文件的<Pages>节中为整个网站注册该控件。