十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
今天调查了一个gridview的行刷新的问题。
成都创新互联公司从2013年开始,是专业互联网技术服务公司,拥有项目网站设计、成都网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元五通桥做网站,已为上家服务,为五通桥各地企业和个人服务,联系电话:18980820575
使用了ajax进行行的移动操作,当然使用的是jquery的tablepnp插件,还有一个功能就是层级折叠问题,这个使用的viewstate保存的,于是出现了一个这么的问题:
当gridview的行移动之后,然后点击与先前位置改变的带层级的行时,层级关联的几行确实被折叠了,但是,行有恢复了没有移动时的索引位置。
经过半天的调查,在移动行时,发现ajax在请求页面的时候,页面保存的viewstate是没有值的,间接证明了ajax是请求一个完全的新页面,而后进行折叠或者展开,读取页面是可以读到之前的viewstate的,但是读取的行的索引(一个按钮的commandargument参数)是之前在刚一进页面的索引,所以ajax请求的页面和本页的状态都是没有关系的,且在行移动后,页面没有刷新绑定。
结论:
ajax发送的请求页面和本页面刷新的页面状态是隔离的。
找到问题,就好解决了,在ajax请求完成后,使用window.top.location.href=window.location.href从新请求一次页面就可以绑定新的索引值了。这个时候viewstate已经读取不到了,所以需要借用其它的方法。
例如session。