我是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时问题不一样。似乎在这两种情况下,选择都应该丢失。
这个问题应该删除吗?
下面的链接显示了页面事件触发的顺序。
http://msdn.microsoft.com/en-us/library/ms178472.aspx并且正如已经提到的,您需要在页面加载的回发时停止重新构建列表。以便在执行事件代码时检查所选属性。