毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

C#城市公交查询系统(文献综述+外文文献翻译+源程序) 第6页

更新时间:2010-5-5:  来源:毕业论文
C#城市公交查询系统(文献综述+外文文献翻译+源程序) 第6页
首次在会话中请求页面时,视图状态为空。在默认情况下,视图状态被存储在一个隐藏字段中,而该字段是自行添加到页面中的。该字段名称为 __VIEWSTATE。通过重写 LoadViewState 方法(Control 类的一个受保护且可重写的方法)组件开发人员可控制如何还原视图状态以及如何将其内容映射到内部状态。
有些方法(如 LoadPageStateFromPersistenceMedium 及其相对的 SavePageStateToPersistenceMedium)可用于将视图状态加载并保存到别的存储介质(例如会话、数据库或服务器端的文件)中。与 LoadViewState 不同,上述方法仅在派生自 Page 的各个类中才可使用。
一旦还原了视图状态,页面树中的各个控件的状态就与浏览器上次呈现该页面时这些控件所处的状态相同。下一步包括更新这些控件的状态以加入客户端的变更。回发数据处理阶段使各个控件有机会更新其状态,以便准确地反映相应的 HTML 元素在客户端的状态。例如,一个服务器 TextBox 控件对应的 HTML 元素是 <input type=text>。在回发数据阶段,TextBox 控件将检索 <input> 标记的当前值并用它刷新其内部状态。每个控件负责从已发送的数据中提取相应值,并更新其某些属性。TextBox 控件将更新其 Text 属性,而 CheckBox 控件将刷新其 Checked 属性。服务器控件和 HTML 元素之间的匹配关系由二者的 ID 确定。
在回发数据处理阶段结束时,页面中的所有控件都根据客户端上所输入的更改来更新原先的状态。此时,对页面激发 Load 事件。
如果在处理两个不同的请求时某个敏感的属性被修改,则页面上可能有些控件需要完成某些任务。例如,如果在客户端修改了某个文本框控件的文本,则该控件激发 TextChanged 事件。如果利用来自客户端的值对该控件的一个或多个属性进行修改,每个控件可以决定激发一个适当的事件。对控件而言,如果这些更改是至关重要的,则这些控件实现 IPostBackDataHandler 接口,在 Load 事件之后立即调用该接口的 LoadPostData 方法。通过编写 LoadPostData 方法的代码,一个控件可以确认自最近一次请求以来是否发生了任何关键的更改,并激发自己的更改事件。
页面生存周期内的关键事件就是:它被调用来执行与客户端上所激发的某个事件相关联的服务器端代码。当用户单击某个按钮时,页面回发数据。已发送值的集合中包含该按钮(该按钮启动整个操作)的 ID。如果已知该控件实现了 IPostBackEventHandler 接口(按钮和链接按钮将实现此接口),则页面框架调用 RaisePostBackEvent 方法。此方法所进行的操作取决于相应控件的类型。对于按钮和链接按钮,此方法查找 Click 事件处理程序并运行相关的委托。
在处理回发事件后,页面就准备进行呈现。这一阶段的标志是 PreRender 事件。各个控件可利用这个很好的时机,以便执行任何需要在保存视图状态和呈现输出结果的前一刻完成的最后一些更新操作。下一个状态为 SaveViewState,在这一状态中所有控件以及页面本身可以刷新自己的 ViewState 集合的内容。所得到的视图状态随后得以序列化、进行哈希运算、进行 Base64 编码并关联到 __VIEWSTATE 隐藏字段。
通过重写 Render 方法,即可更改各个控件的呈现机制。该方法获取一个 HTML 编写器对象,并使用该对象聚集所有将针对该控件生成的 HTML 文本。Page 类的 Render 方法的默认实现方式包括对所有成员控件的递归调用。对于每个控件,页面都调用 Render 方法并将 HTML 输出放入高速缓存。
一个页面的最后生存标志就是 Unload 事件,该事件在页面对象被解除之前发生。在此事件中,您应该释放可能占用的任何关键资源(例如,文件、图形对象、数据库连接)。
终于,在此事件之后,浏览器收到 HTTP 响应数据包并显示页面。
小结
ASP.NET 页面对象模型由于使用了事件机制而特别具有创新意义。Web 页面由各种控件构成,这些控件既形成一个丰富的基于 HTML 的用户界面,又通过事件与用户进行交互。在 Web 应用程序的上下文中建立事件模型是一项极具挑战性的任务。令人惊奇的是,利用服务器端代码可以处理客户端生成的事件,而且这种方法的输出看起来与 HTML 页面相同,只是经过了适当的修改。
要掌握这个模型,重要的一点是要理解页面生存周期中的不同阶段,以及 HTTP 运行时如何实例化和使用页面对象。

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

C#城市公交查询系统(文献综述+外文文献翻译+源程序) 第6页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。