0

然后:

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,即使实际上选中了复选框!

帮助?

4

1 回答 1

3

您需要将项目添加到页面初始化代码中的复选框列表中,而不是Page_Load.

ASP.NET 获取用户发布的值并将它们映射到您的控件PreLoadInitLoad之间)。如果您尚未将项目添加到您的项目中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();
    }
}
于 2010-03-10T21:32:25.573 回答