如果一个asp.net DropDownList的设置为EnableViewState = false,DropDownList.SelectedItem返回null。'EnableViewState = false'的一个asp.net DropDownList
那么在保持EnableViewState = false的情况下,我可以使用什么技术来获取DropDownList的SelectedItem?
如果一个asp.net DropDownList的设置为EnableViewState = false,DropDownList.SelectedItem返回null。'EnableViewState = false'的一个asp.net DropDownList
那么在保持EnableViewState = false的情况下,我可以使用什么技术来获取DropDownList的SelectedItem?
Request.Form[yourDropDownList.UniqueID]
的UniqueID返回 “ctl00 $ $ ContentMain ddlCountry”,其中作为 ClientID的返回 “ctl00_ContentMain_ddlCountry”
的UniqueID的插入到其在回发形式名称使用的HTML形式的名称。
string selectedValue = Request.Form["MyDropDownList"];
this.Request.Form[this.List.ClientID];
我的猜测是,这个问题是,你的数据绑定的下拉列表中隐藏文件中的代码手动。将您的数据绑定从Page_Load()
移动到Page_Init()
可能会有帮助。
但在我看来,更好的解决方案是使用ObjectDataSource填写您的DropDownList的值。这样你就可以确定你正在加载的值是页面生命周期中的正确时间。
这是我使用VS2010的解决方案。 1.将EnableViewState设置为false。 2.将下拉列表框绑定到sqldataadapter。
之前: 将EnableViewState设置为false后,我不得不在每次回发时重新加载列表框。这工作。然而,第一次从列表中选择一个值时,SelectedIndexChanged事件被触发,但selectecitem.Value没有改变(它保持在“0”)。第二次从列表中选择一个值时,selectecitem.Value是正确的。
Jan,我有类似的情况,由于某种原因,我的RadComboBox在回发时丢失了它的值。我使用的是一个ObjectDataSource,并且始终认为它在页面生命周期中的正确位置处进行绑定,所以我不确定为什么会发生这种情况。有什么想法吗? – Jacques 2012-04-26 12:31:01
对不起,雅克,我帮不了那个。它将使用常规的DropDownList进行快速测试。如果这有效,那么问题可能在控制之内。否则,请尝试在此处询问Stack Overflow。 :) – 2012-04-26 13:10:22
你刚刚救了我几个小时的工作。谢谢 ! – buzibuzi 2018-02-02 13:17:25