仅停用不需要viewstate的控件.
要做到这一点,你需要了解viewstate是什么.
Viewstate是页面保存的位置,并记住控件的值,以便在回发后使用它们.请记住,在回发后使用视图状态.
所以实际上你有两倍相同的数据,但只有viewstate回发以前的数据,后面的代码可以使用那些数据.
因此,主要问题是,您需要记住哪些控件要记住您填写的内容,或者需要记住哪些控件需要记住它们之前的状态.
让我们看一下带有EnableViewState的简单文字.
<asp:Literal runat="server" EnableViewState="true" ID="txtLiterar">
Run Code Online (Sandbox Code Playgroud)
现在,如果您在此文字上放置文本,文本也会保存在viewstate上,而在后面的代码上,您可以执行此操作.
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
txtLiterar.Text = "Hello There";
}
}
Run Code Online (Sandbox Code Playgroud)
所以在帖子后面,Literal仍然有其内容,你可以避免再次填充它,因为viewstate拥有它并自动再次填充它.
<asp:Literal runat="server" EnableViewState="false" ID="txtLiterar">
Run Code Online (Sandbox Code Playgroud)
现在,如果您在此文字上放置文本,则文本不会保存在视图状态中,而是在后面的代码中将其添加为.
protected void Page_Load(object sender, EventArgs e)
{
txtLiterar.Text = "Hello There";
}
Run Code Online (Sandbox Code Playgroud)
所以不同的是,您需要始终使用每个帖子上的数据填充该控件.
当您填写下拉列表时,viewstate最需要的部分.你有一个数据绑定和后面的代码需要记住在SelectValue上放置正确的值.
它还需要GridView和其他类似的控件,因为在分页数据时保留上一页和其他信息.
因此,您可以在大多数控件上关闭视图状态 - 在该控件上,您可以在每个帖子上再次填充它们,以及不需要记住先前状态的控件.
更多内容:
如何为viewstate优化类
在提供页面之前确定ASP.NET页面视图状态的大小
限制AJAX调用的视图状态信息
归档时间: |
|
查看次数: |
1081 次 |
最近记录: |