我应该在哪里填充我的下拉列表,以便保留其选择?

时间:2013-01-17 23:48:39

标签: c# asp.net

我看过帖子,建议我在if(!IsPostback)块中填充列表。

但是,我只生成下拉列表以回应回发,所以我不认为这对我有用。

我目前所做的是在Page_Init中对下拉列表进行数据绑定。但是,当我在使用“inspect element”进行新选择(因此触发了autopostback)后检查列表时,我看到列表中的第一项始终是“已选中”。

请告诉我如何通过回发保持选择。

1 个答案:

答案 0 :(得分:1)

如果你在Page_Init中绑定控件,那么你将失去你的选择。不要那样做。

将控件绑定一次,然后ViewState将保留控件数据。但是当选择发生变化时,它将被发送到服务器,SelectedIndexChanged事件将被触发。


更一般地说,您在Render阶段之前在控件上设置的任何属性都将保存在ViewState中。在下一个Post Back中,控件将加载ViewState的内容,因此将自身恢复到PostBack之前的状态。

然后控件将记录PostBack上发送的任何POSTed值。这包括选择,文本框内容等的更改。控件将触发相应的某事 Changed事件,以指示从ViewState的先前状态发生了更改。