然后:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
CheckBoxList1.Items.Add(new ListItem("item1"));
CheckBoxList1.Items.Add(new ListItem("item2"));
}
else
CheckState();
}
问题是每次我在CheckState()中调试,CheckBoxList1.Item [0] .Selected和CheckBoxList1.Item [1] .Selected始终为false,即使实际选中了复选框!
帮助?
答案 0 :(得分:3)
您需要将项目添加到页面初始化代码中的复选框列表中,而不是Page_Load
。
ASP.NET在PreLoad
(between Init
and Load
)期间获取用户发布的值并将其映射到控件。如果您尚未将项目添加到CheckBoxList
,则它们尚不存在,因此ASP.NET无法选择它们。
protected void Page_Init(object sender, EventArgs e) {
CheckBoxList1.Items.Add(new ListItem("item1"));
CheckBoxList1.Items.Add(new ListItem("item2"));
}
protected void Page_Load(object sender, EventArgs e) {
if (!Page.IsPostBack) {
CheckState();
}
}