ViewState EnableViewState 禁用与使用心得

来自: http://hi.baidu.com/%B1%F9%BB%F0%D5%BD%B5%D8/blog/item/07c7a244936677026b63e5f0.html

每个web控件都有个ViewState值,如果一个页面有太多的web控件而不禁用他们的viewstate值的话,会让页面速度大大降低。那么哪些控件的

EnableViewState="false" 哪些控件的EnableViewState="true"呢?

一个个控件说起
textbox,如果你只需要取他的text里面的值,而不是要他响应什么事件,那他的viewstate是可以禁用的.

linkbutton 和asp:button还有别的按纽,如果你只需要他响应单击事件,那他的viewstate可以禁用.

hyperlink,一般情况下不建议用他.他的功能和<a href基本上一样,如无特殊需要尽量不要用他.他的值如果是需要后台动态添加进去的

话,viewstate值不能禁用,否则在执行其它事件后他的值又不能显示,如果在前台就可以直接确定他的值,那他的viewstate是可以禁用的,但无论

他的值是需要前台就可以确定还是需要后台填充进去,<a href一样都能完成的.所以一般情况下不需要使用他

所有验证控件,只要不需要在后台对他再进行编辑,都可以禁用viewstate,包括自定义验证控件都可以禁用

dropdownlist,listbox还有checkboxlist这一类的都差不多,如果是前台就能确定他的选项值,那他的viewstate可以禁用,不影响他的取值,
但如果他的值是需要后台来梆定,又是需要在!ISPostBack里绑定的话,那他的viewstate值是不能禁用的,否则一执行其它事件以后,他的值就不

存在了.

其实最占用资源的就是datagrid,repeater,datalist等这些控件.
datagrid里面数据量庞大.但他的viewstate值在翻页,编辑等操作时起到很大的作用,所以datagrid的viewstate值不能完全禁用.
我们这里以datagrid为例介绍一个如何禁用一批viewstate来优化速度
datagrid里<asp:BoundColumn>.他在浏览时是个Label,编辑时他是一个textbox.而label和textbox都是带有viewstate.比如是一个5列20行的

datagrid,当他数据填充以后他就含有100个viewstate的值,这是一个庞大的数据..如果不想办法禁用是很占用资源的.
<asp:BoundColumn>方法虽然方便,但尽量大家不要使用,用如下方法代替
<asp:TemplateColumn>
              <ItemTemplate>
              <div align=center>
               <%#   DataBinder.Eval(Container,"DataItem.id") %>
              </div>    //不要使用任何控件,一样能显示,而且不占用资源
              </ItemTemplate>
              <EditItemTemplate>
               <asp:TextBox ID="Textbox2" Text='<%# DataBinder.Eval(Container,"DataItem.listid")%>' Runat="server"

EnableViewState=False Columns="自己赋值">
               </asp:TextBox>
              </EditItemTemplate>            
</asp:TemplateColumn>
datagrid里的项,viewstate能禁用的尽量禁用,太占资源了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值