欢迎来到天天文库
浏览记录
ID:36870595
大小:903.50 KB
页数:46页
时间:2019-05-10
《ASPNET的状态管理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章ASP.NET的状态管理本章内容:ASP.NET的状态管理包括使用Cookie、Session、Application对象实现状态管理,跨页存取数据,全局数据共享等。本章重点:使用Cookie对象实现状态管理,使用Session对象存、取数据,使用Application对象共享数据。所谓“状态管理”,是指使用ASP.NET中的ViewState、Cookie、Session和Application等对象实现页面数据缓存和传递的技术。ASP.NET是一种无状态的网页连接机制,服务器处理客户端请求的网页后
2、,与该客户端的连接就中断了。此外,到服务器端的每次往返都将销毁并重新创建网页,因此,如果超出了单个网页的生存周期,网页中的信息将不复存在。也就是说,在默认情况下,服务器不会保存客户端再次请求页面和本次请求之间的关系和相关数据。在C/S架构的应用程序中,使用全局变量即可很好地解决这个问题,而在ASP.NET环境中则需要使用与状态管理相关的对象来保存用户数据。5.1状态管理概述ViewState对象是ASP.NET状态管理中常用的一个对象,它通常被用来保存Web页信息及所含控件的值。5.2.1ViewState
3、对象概述使用ViewState对象可以十分方便地在这一过程中保留当前页面中所包含的数据。Web页面默认是具有“formrunat=server”特性的,ASP.NET会自动在输出时给页面添加一个隐含字段。打开一个aspx页面后,在浏览器中右击,在弹出的快捷菜单中单击“查看源”,即可看到经服务器转换成HTML格式后的页面源代码。如图5-1所示的是包含在源代码中的ViewState隐含字段及其值。5.2创建和使用ViewState对象有了这个隐含字段,页面中其他所有的控件状态,包括页面本身的一些状态都会保存到这
4、个隐含字段的值里面。并且,每次页面提交时会一起提交到服务器。当服务器将处理完毕的页面回发给客户端时,ASP.NET会根据这个值来恢复页面到各个控件提交前的状态。5.2.2使用ViewState1.使用ViewState对象时的注意事项使用ViewState(视图状态)对象可以带来很多方便,但仍需要注意以下问题。①ViewState对象仅能提供当前页面对象的状态信息,而且这些信息不能跨页使用。②ViewState对象被序列化为XML的形式,然后再进行Base64编码。③若页面中包含有一些用于分页显示数据的控件
5、(如GridView),最好不要使用ViewState对象。④ViewState对象的MaxPageStateFieldLength属性用来指定隐含字段的最大长度。2.启用或禁用ViewState启用或禁止ViewState保存某控件的信息,可以通过设置控件的EnableViewState属性来实现。该属性值指示服务器控件是否向发出请求的客户端,保持自己的视图状态以及它所包含的任何子控件的视图状态。如果允许控件维护自己的视图状态,则应设置为true(默认值);否则,应设置为false。仅当EnableVie
6、wState属性设置为true时,页面或控件的ViewStateMode属性才起作用。如果EnableViewState属性设置为false,则即使ViewStateMode属性设置为Enabled,视图状态也将关闭。3.使用ViewState对象ViewState对象以“键/值对”的方式保存控件的名称和对应的值,以便在回发时还原控件的原始状态。对于控件的值保存和回发恢复,可由系统自动完成,一般不必为此编写专门的代码。若用户希望将一些特殊的数据保存到ViewState对象中,则可以使用ViewState对象
7、的Add()方法。其语法格式为:ViewState.Add(键名称,值)从ViewState中读取值的语法格式为:ViewState[键名称]【演练5-1】本例将示范如何将一个字符串保存到ViewState中以及从ViewState中提取出来的编程方法。如图5-2所示,程序启动后,用户可在文本框中随意输入一些字符后单击“保存到ViewState”按钮,将其保存起来。需要读取时,可单击“从ViewState中读取”按钮,将ViewState中保存的指定数据显示到标签控件中,如图5-3所示。新建一个ASP.NE
8、T空网站,向其中添加一个Web窗体Default.aspx。向页面中添加一个文本框、一个标签和两个按钮控件。设置文本框的ID属性为txtString,设置标签控件的ID属性为lblShow,设置两个按钮的ID属性分别为btnSave和btnRead,设置两个按钮控件的Text属性分别为“保存到ViewState”和“从ViewState中读取”。【演练5-1】代码Cookie是由服务器发送给客户机,并保存在客户机
此文档下载收益归作者所有