获取.Selected时出现问题:CheckBoxList上的DataBind()

时间:2011-07-13 07:19:57

标签: c# asp.net

我是C#和ASP.NET的新手。

我有一个名为DeploySelectList的CheckBoxList。如果我按如下方式手动将项目添加到列表中,则在单击“提交”按钮后获取 .Selected 项目时没有任何问题。

protected void Page_Load(object sender, EventArgs e) {
        DeploySelectList.Items.Add("test 1");
        DeploySelectList.Items.Add("test 2");
        DeploySelectList.Items.Add("test 3");
}

但是,如果我创建一个List对象的DataBinding,则所有DeploySelectList项始终具有 .Selected = false

protected void Page_Load(object sender, EventArgs e) {
        List<String> list = DBFunctions.getDeploymentSelection();
        DeploySelectList.DataSource = list;
        DeploySelectList.DataBind();
}

为什么会这样?

感谢。

编辑:根据下面的评论,在if (!IsPostBack)块中添加代码可以解决问题。我仍然不明白为什么在手动操作和执行DataBinding时问题不一样。似乎在两种情况下都应该丢失选择。

这个问题应该删除吗?

1 个答案:

答案 0 :(得分:1)

下面的链接显示了触发页面事件的顺序。

http://msdn.microsoft.com/en-us/library/ms178472.aspx

如前所述,您需要在页面加载中停止重建回发列表。这样您就可以在执行事件代码时检查所选属性。