Robin's Blog

记录 积累 学习 成长

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
ViewState最初是在asp.net1.1 出现的,有了它程序员可以像开发WinForm应用程序一样方便的进行WebForm程序开发。
它存储于网页中的Hidden 区域,记录客户端的操作状态,并且返回给服务端。小型控件可以接受,如果大型控件进行解析(GridView 几千行数据),会拖跨服务器。如果屏蔽它,有些地方可能会出现不可预料的事情。
asp.net 2.0中新增控件状态(ControlState)是对VieState的改进与补充,它是不可以屏蔽的。详情请看Asp.net控件状态详解
以下是GridView为实例,屏蔽ViewState后,进行删/改/排序/分页测试。
经测试,全部通过。
改:客户端生成代码 <a href="javascript:__doPostBack('GridView1','Edit$0')">编辑</a>,调用_doPostBack方法,两个参数分别为 调用的对象及传递的参数。这里是GridView1的 第0行编辑命令。客户端点击后脚本会将两上参数赋值给_ENENTTARGET与_EVENTARGUMENT两个hidden的input控件
如下:

<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
服务端的request.form中可以查到。
更新/取消:客户端代码如下:
<a href="javascript:__doPostBack('GridView1$ctl02$ctl00','')">更新</a>
<a href="javascript:__doPostBack('GridView1','Cancel$0')">取消</a
其中,此行被更新项为input Texbox 所以,其值自动被收录到form中。
排序/分页以上雷同:
<a href="javascript:__doPostBack('GridView1','Sort$iNewsID')">iNewsID</a>
<a href="javascript:__doPostBack('GridView1','Page$1')">1</a>



posted on 2009-09-01 14:57  Robin99  阅读(463)  评论(0编辑  收藏  举报