📄 mytemplate.cs
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -