关于ajax的页面刷新问题

今天调查了一个gridview的行刷新的问题。


使用了ajax进行行的移动操作,当然使用的是jquery的tablepnp插件,还有一个功能就是层级折叠问题,这个使用的viewstate保存的,于是出现了一个这么的问题:

当gridview的行移动之后,然后点击与先前位置改变的带层级的行时,层级关联的几行确实被折叠了,但是,行有恢复了没有移动时的索引位置。


经过半天的调查,在移动行时,发现ajax在请求页面的时候,页面保存的viewstate是没有值的,间接证明了ajax是请求一个完全的新页面,而后进行折叠或者展开,读取页面是可以读到之前的viewstate的,但是读取的行的索引(一个按钮的commandargument参数)是之前在刚一进页面的索引,所以ajax请求的页面和本页的状态都是没有关系的,且在行移动后,页面没有刷新绑定。


结论:

ajax发送的请求页面和本页面刷新的页面状态是隔离的。


找到问题,就好解决了,在ajax请求完成后,使用window.top.location.href=window.location.href从新请求一次页面就可以绑定新的索引值了。这个时候viewstate已经读取不到了,所以需要借用其它的方法

例如session。

相关文章

JS原生Ajax操作(XMLHttpRequest) GET请求 POST请求 兼容性问题 利用iframe模拟ajax 实现表单提交的返回...
AJAX 每日更新前端基础,如果觉得不错,点个star吧 😃 https://github.com/WindrunnerMax/E...
踩坑Axios提交form表单几种格式 前后端分离的开发前后端, 前端使用的vue,后端的安全模块使用的SpringSe...
很早就听闻ajax的名声,但是却一直不知道怎么用,今天自己捣鼓了一下,竟然会用了,哈哈哈哈。 为了防止...
需要在服务器上进行哈 jquery的ajax方法: // jquery请求 $.ajax({ url: "./server/slider.js...
Ajax函数封装ajax.js // Get / Post // 参数 get post // 是否异步 // 如何处理响应数据 // URL // var...