我通过从 System.Web.UI.WebControls.TemplateField 派生创建了一个自定义复选框模板字段。该字段的模板是通过创建一个实现 ITemplate 接口的类来创建的。当页面上发生任何回发时,复选框中的值将丢失。
为了让这个临时工作,我使用 viewstate 将复选框的状态存储在复选框列中,但更进一步,我想完全避免这种情况,因为我将在我的应用程序中以相同的方式使用更多模板字段。
如果我遗漏了什么,请告诉我。
以下是代码:
namespace MyControls
{
public class CheckBoxTemplateField : TemplateField
{
public CheckBoxTemplateField()
{
this.HeaderTemplate = new CheckBoxTemplate();
this.ItemTemplate = new CheckBoxTemplate();
}
}
public class CheckBoxTemplate : ITemplate
{
public void InstantiateIn(Control container)
{
CheckBox chk = new CheckBox();
container.Controls.Add(chk);
}
}
}
问候, 高拉夫