mytemplate.cs
来自「这是《ASP.NET编程实作教程》一书中的源文件 如果有此书的朋友不防下载过来参」· CS 代码 · 共 80 行
CS
80 行
using System;
using System.Web;
using System.Web.UI;
namespace myControl {
//定义模板容器
public class TemplateItem : Control, INamingContainer {
private String _message = null;
public TemplateItem(String message) {
_message = message;
}
public String Message {
get {
return _message;
}
set {
_message = value;
}
}
}
[
ParseChildren(true)
]
//定义模板类
public class myTemplate : Control, INamingContainer {
private ITemplate _messageTemplate = null;
private String _message = null;
public String Message {
get {
return _message;
}
set {
_message = value;
}
}
[
PersistenceMode(PersistenceMode.InnerProperty),
TemplateContainer(typeof(TemplateItem))
]
//模板类的ITemplate属性
public ITemplate MessageTemplate {
get {
return _messageTemplate;
}
set {
_messageTemplate = value;
}
}
//重载的DataBind方法
public override void DataBind() {
EnsureChildControls();
base.DataBind();
}
//重载的CreateChildControls方法
protected override void CreateChildControls() {
//如果模板已经被创建,使用它来创建子控件,否则添加一个LiteralControl控件
if (MessageTemplate != null) {
Controls.Clear();
TemplateItem i = new TemplateItem(this.Message);
MessageTemplate.InstantiateIn(i);
Controls.Add(i);
}
else {
this.Controls.Add(new LiteralControl(this.Message));
}
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?