我有一个页面,其中包含 5 个相同类型的用户控件。每个用户控件都有一个 gridview 和几个按钮。
我不明白为什么用户控件上的控件不能保留其价值。
编辑
下面是我如何在用户控件中填充 gridview。
protected void Page_Load(object sender, EventArgs e)
{
var list = new List<CKListByDprtment>
{
new CKListByDprtment { ID = 1, TaskName = "New laptop needed",
CompletedBy = "My Boss", HMReq = true },
new CKListByDprtment { ID = 2, TaskName = "New Workstation needed",
CompletedBy = "My Boss", HMReq = false }
};
gvCKList.DataSource = list;
gvCKList.DataBind();
}
#endregion
#region GridView Validation
protected void cvValidateGrid_ServerValidate(object sender, ServerValidateEventArgs args)
{
ValidateGrid();
}
private void ValidateGrid()
{
foreach (GridViewRow gvRow in gvCKList.Rows)
{
CheckBox ckHMreq = gvRow.Cells[0].FindControl("ckHMreq") as CheckBox;
}
}
我试图在主 aspx 页面上添加一个复选框。当页面回发时,checked 能够保留其价值。我也在用户控件上尝试过,但不在gridview内部。回发时,复选框保留其值。
看起来只有在网格视图内部,控件在回发后会丢失其值。我首先在 aspx 页面上添加了ViewStateMode = "Enabled",然后是在 usercontrol 上,最后是在 gridview 本身上,但没有成功。
任何原因?