成都创新互联网站制作重庆分公司

Asp.net视图状态的作用是什么

这篇文章将为大家详细讲解有关Asp.net视图状态的作用是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

目前创新互联已为成百上千家的企业提供了网站建设、域名、雅安服务器托管网站托管运营、企业网站设计、梧州网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

视图状态(view state)是在单个页面中保存信息的第一选择,ASP.NET Web控件也使用试图状态在回发间保存属性值。通过页面内建的 ViewState 属性,你可以把自己的数据放入到视图状态集合中,可以保存的信息类型包括简单数据类型和自定义对象。那么,.Net开发环境下的视图状态与基于COM下的传统视图状态作用有何不同呢?

基于COM的视图状态

在传统(基于COM)ASP下,在构建即将输出的HTTP响应时,WEB开发者需要手动为传入的窗体部件重新填充值。例如,如果传入的HTTP请求包括5个带有特定值的文本框,*aspx文件需要提取当前的值(通过Form或者Request对象的QueryString集合)并且手动把它们放回到HTTP响应流里(即拖放)。如果开发者没有设置这个操作,呈现给调用者的就是5个空的文本框!

基于.Net的视图状态

在ASP.NET下,我们不在需要手动删除和重新填充位于HTML部件内的值,因为ASP.NET运行时将自动嵌入一个隐藏的表单字段(名为_VIEWSTATE),其范围时浏览器和一个指定的页面之间。分配到这个字段的数据是一个64位编码的字符串,它包括一个描速当前页面上的INIT事件处理程序的作用域内访问web部件的状态最冒险)同时,恰恰在输出相应被提交回发出请求的浏览器之前,_VIEWSTATE数据被用来重新填充窗体部件。显然,ASP.NET最大的优点就是不需要任何用户参与。当然,如果愿意的话,用户总是能够与默认功能交互。需要注意的是,你是在*.ASPX文件中直接硬编码了ListBox内的项。你已经知道,在HTML表单内的

视图状态示例

下面的代码演示了页面如何使用视图状态,它允许用户保存一系列的值,并将其恢复。

public partial class Chapter06_ViewStateTest : System.Web.UI.Page{protected void btnSave_Click(object sender, EventArgs e){SaveAllText(this.Table1.Controls, true);
}
protected void btnRestore_Click(object sender, EventArgs e){RestoreAllText(this.Table1.Controls, true);}
private void SaveAllText(ControlCollection controls, bool saveNested){foreach (Control control in controls)
{if (control is TextBox)
{ViewState[control.ID] = ((TextBox)control)。Text;}
// bool类型的 saveNested 参数给方法提供了更大的灵活性 www.sytm.net  // 可以控制是否需要递归
if (control.Controls != null && saveNested){SaveAllText(control.Controls, true);
}
}
}
private void RestoreAllText(ControlCollection controls, bool saveNested){foreach (Control control in controls)
{if (control is TextBox)
{if (ViewState[control.ID] != null)
{((TextBox)control)。Text = ViewState[control.ID].ToString();}
}
if (control.Controls != null && saveNested){RestoreAllText(control.Controls, true);
}
}
}
}

关于Asp.net视图状态的作用是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


当前名称:Asp.net视图状态的作用是什么
转载来源:http://cxhlcq.com/article/pggioj.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部