在页初始化开始时引发 PreInit 事件
命名空间:System.Web.UI
程序集:System.Web(在 system.web.dll 中)
在调用 OnPreInit 方法后,将加载个性化信息并初始化页主题(如果有)。这也是为页动态定义 PageTheme 或 MasterPage 的首选阶段。引发事件时会通过委托调用事件处理程序。
OnPreInit 方法还允许派生类对事件进行处理而不必附加委托。这是在派生类中处理事件的首选技术。
给继承者的说明 在派生类中重写 OnPreInit 时,一定要调用基类的 OnPreInit 方法,以便已注册的委托对事件进行接收。
2. 关于session
什么是session?
Session 是 ASP 和 ASP.NET 中用于保持状态的基于 Web 服务器的方法。Session 允许通过将对象存储在 Web 服务器的内存中在整个用户会话过程中保持任何对象。
Session 通常用于执行以下操作:
- 存储需要在整个用户会话过程中保持其状态的信息,例如登录信息或用户浏览 Web 应用程序时需要的其它信息。
- 存储只需要在页重新加载过程中或按功能分组的一组页之间保持其状态的对象。
Session 的作用就是它在 Web 服务器上保持用户的状态信息供在任何时间从任何页访问。因为浏览器不需要存储任何这种信息,所以可以使用任何浏览器,即使是像 PDA 或手机这样的浏览器设备。
session的限制:
- 随着越来越多用户登录,Session 所需要的服务器内存量也会不断增加。
- 访问 Web 应用程序的每个用户都生成一个单独的 Session 对象。每个 Session 对象的持续时间是用户访问的时间加上不活动的时间。
- 如果每个 Session 中保持许多对象,并且许多用户同时使用 Web 应用程序(创建许多 Session),则用于 Session 持久性的服务器内存量可能会很大,从而影响了可伸缩性。
比较 Session 和 ViewState
Session 主要用于保持代码隐藏类中对象的状态。ViewState 主要用于保持 Web 页上控件的状态。当 Web 页上的控件被绑定到代码隐藏类中的对象,并且两者都需要在页重新加载过程中保持时,Session 和 ViewState 共同实现持久性。
在这种情况下,ViewState 保持 CrystalReportViewer 控件,而 Session 保持绑定到该控件的 ReportDocument 对象。
3.什么是ViewState?
ViewState 是 ASP.NET 中保持视图(也就是 Web 窗体)状态的基于浏览器的方法。其主要功能是支持 Web 控件的持久性。
ViewState 自动维护所有 Web 控件的状态。这是通过让 ViewState 根据控件的 EnableViewState 属性(默认为 True)存储每个控件实现的。因为 ViewState 存储页上 Web 控件中数据的状态,所以当页在浏览器和 Web 服务器之间来回传输时,整个 ViewState 对象必须包括在页中。这是通过将整个 ViewState 对象加密为字符串,然后将该字符串放置在页上隐藏窗体标记的值中实现的。例如,对于仅有一个按钮控件的 ASP.NET Web 页面,其 ViewState 的 HTML 代码如下:
<input type="hidden" name="__VIEWSTATE" value="dDwtNTMwNzcxMzI0Ozs+I7GfLyg3p44eTLFCiVEiRKUBzFw=" />
ViewState 只存储可转换为字符串格式的信息。
4.IsPostBack属性获取一个值,该值指示该页是否正为响应客户端回发而加载,或者它是否正被首次加载和访问。
命名空间:System.Web.UI
程序集:System.Web(在 system.web.dll 中)如果是为响应客户端回发而加载该页,则为 true;否则为 false。
5.FindControl
在当前的命名容器中搜索指定的服务器控件。
Control.FindControl (String) 在当前的命名容器中搜索带指定 id 参数的服务器控件。 Control.FindControl (String, Int32) 使用指定的 id 和 pathOffset 参数(该参数有助于搜索)中指定的整数在当前命名容器中搜索服务器控件。不应重写此版本的 FindControl 方法。