如果一個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