我已经从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);
}
}
}
此致 拉夫
答案 0 :(得分:0)
复选框已知其问题在回发中保持其值
1解决方案是将其值存储在隐藏的fiesld中并在服务器中读取它。
P.S。这与viewstate无关。输入控件不会在viewstate中保存它们的值(具有'ontextchange'事件的excpet文本框)