我通過從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);
}
}
}
問候, 拉夫
實際上我剛剛發現,構造函數中的ItemTemplate - 是獲取TemplateField列以在回發中正確保留的唯一方法。我不得不看看你的代碼的其餘部分,以找出爲什麼你會丟失複選框的狀態,但它適用於我。 –