当前位置:  开发笔记 > 后端 > 正文

什么时候应该在服务器控件上启用EnableViewState?

如何解决《什么时候应该在服务器控件上启用EnableViewState?》经验,为你挑选了1个好方法。

是否应该在服务器控件上启用视图状态时有任何指导或规则?而当它应该不是

我正在查看此SqlDatasource示例,并注意到标签控件的视图状态未启用:


为什么EnableViewState标签控件上没有启用?我知道启用视图状态会带来一些开销,所以我只想在需要时才使用它.



1> Ken Browning..:

这是一个很好的经验法则:如果您(1)在代码隐藏中更改属性的值,并且(2)需要知道您在稍后的回发中设置的值而不重新计算该值,那么您需要使用ViewState.

例如.在我的页面标记中,我可能有一个像这样指定的Label控件:


然后在Page_Load事件中我有这个代码:

If Not IsPostBack AndAlso myEmployeeObject.IsNew Then TitleLabel.Text = "Create a new Employee"

通过更改Text属性的值,我在ViewState中引入了一个新元素.如果我在任何后续PostBack期间获得Label的Text属性的值,则值将为"Create a new Employee".

这是我在开始最小化页面使用的ViewState数量时所做的工作.我在页面上启用了跟踪.在浏览器中呈现时,跟踪输出将添加到页面底部.跟踪输出标识页面上的每个服务器控件,并包括每个控件存储多少ViewState(以字节为单位).我使用此信息来计算何时交换ViewState的开销以获得重新计算值的开销.

在我之前的示例中,我会选择在每个PostBack上重新计算Label的Text属性,并停止在ViewState中存储Text属性.这是我更新的标记的样子:


我更新的Page_Load事件:

If myEmployeeObject.IsNew Then TitleLabel.Text = "Create a new Employee"

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有