任何在.NET Web應用程序中使用jQuery的人都可能遇到問題,在回發期間(由於視圖狀態,安全性等原因),通過jQuery在客戶端上所做的更改不一定會持久存在於Web服務器上。如何在使用jQuery時解決ASP.NET Webforms限制?
我的場景: 我有一個GridView有兩個不同的ASP.NET下拉菜單。其中一個下拉列表在page_load期間填充,而另一個則保留爲空白。剩下的空白就像這樣填充:當用戶在第一個下拉列表中選擇一個項目時,它會觸發一個事件,該事件使用jQuery ajax從Web服務器檢索數據,然後將這些數據返回給客戶端並填充到第二個下拉列表。這一切都是基本的,簡單而平穩的啓動。我喜歡它。
但是,我不喜歡的事實是,當用戶在第二個下拉列表中選擇一個項目(在它已經被jQuery ajax調用填充之後)並單擊保存按鈕(這會導致回發),那麼下拉選擇在服務器端顯示爲空(這實際上意味着服務器不知道下拉列表中有項目或者用戶選擇了其中的項目)。很明顯,這與視圖狀態中的下拉列表是空的這一事實有關,我完全意識到爲什麼在這背後,但是讓我非常沮喪地嘗試將jQuery與.NET混合。
所以我的問題是這樣的:我如何去使用jQuery來填充ASP.NET下拉,並通過回發持續其中的項目?
感謝您的幫助!
如果您所需要的只是選定的值,那麼無論ASP.NET管道是否能夠重新創建由客戶端動態填充的控件的子項,它都可以訪問表單中的變量Request.Form KVP集合。如果客戶端需要重新加載頁面,問題就來源於持久化。在這種情況下,Christophe的答案可以用來促進這一點。 – GunnerL3510