您现在的位置: 365建站网 > 365学习 > PostBack与视图状态

PostBack与视图状态

文章来源:365jz.com     点击数:211    更新时间:2009-09-18 10:27   参与评论

    asp.net开发中我们时常会写if (!IsPostBack)来限定第一次加载的所做的动作,但是否真正明白第一次加载和回传的别?    
    首先我来贴一段TextBox代码,这是我用Reflector这个工具反编译微软库得出的代码

Code

   从上面代码可以看得出来,Text是属性是根据视图状态值而得到的,下面的问题就是什么时候产生视图状态值?因为视
图状态值是存于客户端的,所以第一加载的时候如果你没有设定Text属性值,所以得到的就是string.Empty
  当按钮进行回传时,这个时候回传就会根据视图状态值匹配

Code

这是回传事件发生后装载数据的代码,看看如果TextBox不行回发过来的数据就把TextBox属性值设值为str2,也就是回
发过来的值.
  所以在.net中回发机制是依赖于视图状态值来实现的,如果禁用了视图状态也就不能还原状态值,那asp.net中那些属性具有
回发还原,呵呵.当然是表单中
  还有一点那什么时候用if (!IsPostBack),那些东西该写在这些语句中,写在这个语句中的应该是那些在回发过程是会改变的控件状态值,例如TextBox,DropDownList,Reapeater等这些,因为这些控件有可能在回发事件中会产生一些更改.所以回发机制并不是加速缓存,也不是那些不改的静态htm或者CSS第一次加载以后回发就可以加速,回发真正的机制是:
    通过视图状态来还原/改变表单值.
这也是asp.net事件驱动和在同一个页面编码回发得以实现的基础.

Copy Right By Robo_zou
Tag标签: PostBack与视图状态

如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛


发表评论 (211人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换图片
最新评论
------分隔线----------------------------