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