您好,登錄后才能下訂單哦!
今天調查了一個gridview的行刷新的問題。
使用了ajax進行行的移動操作,當然使用的是jquery的tablepnp插件,還有一個功能就是層級折疊問題,這個使用的viewstate保存的,于是出現了一個這么的問題:
當gridview的行移動之后,然后點擊與先前位置改變的帶層級的行時,層級關聯的幾行確實被折疊了,但是,行有恢復了沒有移動時的索引位置。
經過半天的調查,在移動行時,發現ajax在請求頁面的時候,頁面保存的viewstate是沒有值的,間接證明了ajax是請求一個完全的新頁面,而后進行折疊或者展開,讀取頁面是可以讀到之前的viewstate的,但是讀取的行的索引(一個按鈕的commandargument參數)是之前在剛一進頁面的索引,所以ajax請求的頁面和本頁的狀態都是沒有關系的,且在行移動后,頁面沒有刷新綁定。
結論:
ajax發送的請求頁面和本頁面刷新的頁面狀態是隔離的。
找到問題,就好解決了,在ajax請求完成后,使用window.top.location.href=window.location.href從新請求一次頁面就可以綁定新的索引值了。這個時候viewstate已經讀取不到了,所以需要借用其它的方法。
例如session。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。