我是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时问题不一样。似乎在两种情况下都应该丢失选择。
这个问题应该删除吗?
答案 0 :(得分:1)
下面的链接显示了触发页面事件的顺序。
http://msdn.microsoft.com/en-us/library/ms178472.aspx
如前所述,您需要在页面加载中停止重建回发列表。这样您就可以在执行事件代码时检查所选属性。