asp.net DropDownList的'EnableViewState = false'

时间:2009-08-23 16:04:28

标签: asp.net drop-down-menu viewstate

如果asp.net DropDownList设置为EnableViewState = false,DropDownList.SelectedItem将返回null。

然后我可以使用什么技术来获取DropDownList的SelectedItem,同时保持EnableViewState = false?

5 个答案:

答案 0 :(得分:7)

Request.Form[yourDropDownList.UniqueID] 

UniqueID返回“ctl00 $ ContentMain $ ddlCountry”,其中as ClientID返回“ctl00_ContentMain_ddlCountry”

将UniqueID插入到回发表单名称中使用的HTML表单的名称。

答案 1 :(得分:4)

this.Request.Form[this.List.ClientID];

答案 2 :(得分:4)

我的猜测是问题是您在代码隐藏文件中手动对下拉列表进行数据绑定。将数据绑定从Page_Load()移至Page_Init()可能会有所帮助。

但在我看来,更好的解决方案是使用ObjectDataSource来填充DropDownList的值。这样,您就可以确保在页面生命周期中加载值是正确的时间。

答案 3 :(得分:2)

string selectedValue = Request.Form["MyDropDownList"];

答案 4 :(得分:1)

这是我使用VS2010的解决方案。 1.将EnableViewState设置为false。 2.将dropdownlistbox绑定到sqldataadapter。

在: 将EnableViewState设置为false后,我不得不在每次回发时重新加载列表框。这很有效。但是,第一次从列表中选择一个值时,会触发SelectedIndexChanged事件,但selectecitem.Value没有更改(它保持为“0”)。第二次从列表中选择一个值时,selectecitem.Value是正确的。