首先拖入一个服务器控件到aspx页面,设置此控件的ID,这里为了改变状态方便拖入的是checkbox,然后在此控件的代码里加上【style="DISPLAY: none"】这个属性意在隐藏此控件,但不能用【Visible=false】这样控件就不会加载到客户端了。控件的代码如此形式:【<asp:checkbox id="chkReload" style="DISPLAY:none" runat="server" AutoPostBack="True"></asp:checkbox>】
添加客户端js代码:在CS页面加入处理此控件的事件代码:这样只要客户端调用js的reload()方法就可以刷新页面了,跟我们点击刷新按钮的效果一致。没有深入研究不知道有没有更好的办法。
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/34031c708bfe702fe82d01ff5c6593aa.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0be121fa5b8988fbabbbc526af3b0fc0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4fd96b3cf02f4c7b5c8964ac8167f7af.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/34031c708bfe702fe82d01ff5c6593aa.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0be121fa5b8988fbabbbc526af3b0fc0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4fd96b3cf02f4c7b5c8964ac8167f7af.gif)
确实不是所有aspx文件解析到客户端后都会添加__doPostBack()函数,如果页面上没有需要实现autopostback的控件,就不会添加__doPostBack()函数。
俺补充一下:如果在主页面中有一个DataGrid用来显示表格状数据,并且实现了自定义分页;每一行有一个“编辑”按钮用来弹出一个模态窗口让用户编辑该行数据,如果在编辑完成后,主窗口调用window.location.reload()或者类似的刷新操作,则主窗口的onload事件会被调用,这时问题出现了:DataGrid的页码会被回复到第一页,即以前的ViewState不会被保存下来。这时使用楼主说的办法来代替window.location.reload()就可以达到DataGrid的页码仍然保留在原来页数的效果了。。。。。。。