我正在寫一個ASP.Net webform與它的一些DropDownList控件。然後用戶更改其中一個下拉列表中的選定項目,ASP.Net似乎無法處理SelectedIndexChanged事件,直到通過單擊「提交」按鈕提交表單。 如何讓我的下拉菜單立即處理SelectedIndexChanged?DropDownList不回發SelectedIndexChanged
P.S.這是我經常回答太多的經典問題,但似乎沒有人在stackoverflow上提出過這個問題。
我正在寫一個ASP.Net webform與它的一些DropDownList控件。然後用戶更改其中一個下拉列表中的選定項目,ASP.Net似乎無法處理SelectedIndexChanged事件,直到通過單擊「提交」按鈕提交表單。 如何讓我的下拉菜單立即處理SelectedIndexChanged?DropDownList不回發SelectedIndexChanged
P.S.這是我經常回答太多的經典問題,但似乎沒有人在stackoverflow上提出過這個問題。
將AutoPostback屬性設置爲true會導致選擇更改時回發。請注意,這需要啓用javascript。
將DropDownList的AutoPostBack屬性設置爲true。
您需要將列表的AutoPostBack
屬性設置爲true。另外,如果您從後面的代碼中填充下拉列表的內容(例如從數據庫中獲取列表的內容),請確保您沒有重新綁定每個數據中的數據回發。
有時候,人們會通過綁定頁面加載事件中的下拉菜單而不把它放在If Not IsPostBack
中。這將導致事件不會觸發。
中繼器和ItemCommand
事件也是如此。
如果您在頁面加載期間填充下拉列表,則每次頁面回發時它都會重新加載列表,從而否定您的回發方法。 只有當(!ispostback)
這應該是答案,因爲懶惰地設置AutoPostBack =「true」並不總是有效,因爲它也可能影響其他控件。整個頁面被重新發布! – Fandango68 2015-06-25 03:53:12
只需要注意,必須爲控件啓用viewstate。 – LosManos 2015-07-30 22:49:22