当前位置: 备案域名出售 > 建站教程>正文

网站建设中使用视图状态

网站建设中在一个ASP.NET页面被显示出来以后,曾经创建了该页面以及所有的服务器控件的页面对象就被破坏了。当回送发生时,一个新的页面对象和新的服务器控件对象就被创建出来。在编写一个服务器控件时我们常常需要保持和管理状态。因为控件随着每个页面请求被创建,然后被破坏,因此在对象成员变量中存储的状态将丢失。如果一个控件想要保持状态,它就必须用别的方法来做这件事。就像我们在文本框控件中看到的那样,管理状态的方法之一是使用回送。当一个回送发生时,任何与控件相关联的回送数据都经由IPostBackData接口而对控件可用。控件因此可以重新填充它的类变量,使控件保持状态。

如果可以使用,那么使用回送数据来管理一个控件的状态是一个好的方法,但有几个缺点。最为明显的一个是只有某些HTML元素(像input等)能够使用回送,如果我们有一个标签控件需要记录它的值,我们就不能使用回送。而且实际上,回送仅仅被设计为包含单项数据。例如,文本框控件需要记忆最近一个值,以便能够在值发生变化时引发一个TextChanged事件。为了维持这个附加状态,选择之一是隐藏字段。当控件显示其输出时,也同样能将隐藏字段和其他需要记忆的值一起输出。当发生回送时,LoadPostData方法将检索这些值。这种方法对于一个控件是适用的,但在同一个页面中可能有许多同一空间的实例,这是就会出问题。为解决管理状态的问题,ASP.NET有一个名为viewstate(试图状态)的功能。简而言之,视图状态是一个隐藏输入字段,它可以包含任意数量的服务器控件的状态。它是自动进行管理的,作为控件作者我们根本不需要直接访问它。

« 上一篇下一篇 »