CheckBoxList上的DataBind():获取. selected的问题

本文关键字:获取 selected 问题 上的 DataBind CheckBoxList | 更新日期: 2023-09-27 18:02:34

我是c#和ASP.NET新手。

我有一个名为DeploySelectList的CheckBoxList。如果我像下面这样手动向列表中添加项目,那么获得就没有问题了。点击Submit按钮后选中的

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项总是具有.

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

为什么会发生这种情况?

谢谢。

编辑:根据下面的评论,在if (!IsPostBack)块中添加代码修复了这个问题。我仍然不明白为什么手动操作与使用DataBinding时问题不一样。似乎在这两种情况下,选择都应该丢失。

这个问题应该删除吗?

CheckBoxList上的DataBind():获取. selected的问题

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

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

并且正如已经提到的,您需要在页面加载的回发时停止重新构建列表。以便在执行事件代码时检查所选属性。