第 3 讲 web 窗体的创建与使用
DESCRIPTION
第 3 讲 Web 窗体的创建与使用. Web 数据库 设计与应用. 1 Web 窗体页介绍 2 Web 服务器事件处理 3 用户重定向 4 Web 窗体状态管理. VB.NET. ADO.NET. Use Visual Studio .NET. ASP.NET. Visual Studio.NET. 1 Web 窗体页介绍. 5.1 Web 窗体页介绍. 几个重要的术语 ASP.NET 窗体 使用 Visual Studio .NET 创建 Web 窗体. 几个重要的术语. 页 (Page) 静态 Web 页: HTML - PowerPoint PPT PresentationTRANSCRIPT
1 Web窗体页介绍 2 Web 服务器事件处理 3 用户重定向 4 Web 窗体状态管理
Use Visual Studio .NET
ASP.NETVisual Studio.NET
ADO.NETVB.NET
Web 数据库设计与应用
第 3讲 Web窗体的创建与使用
1 Web 窗体页介绍
几个重要的术语 ASP.NET 窗体 使用Visual Studio .NET 创建 Web 窗体
5.1 Web 窗体页介绍
几个重要的术语
页 (Page)
静态Web页: HTML
动态Web页 客户端: DHTML
服务器端: ASP, JSP, ASP.NET
Web 窗体页介绍
静态 Web 页
不含代码 直接利用 HTML 的标记实现 Web 页
面 文件的后缀名:
.html.htm
静态WEB页工作原理示意图几个重要的术语
HTML 工作原理示意图
静态WEB页
动态 WEB 页
客户端的动态页面 DHTML 示意图 利用 VBScript 和 JavaScript 实现动态
的脚本; 通过客户端的浏览器解释和执行
服务器端的动态页面 示意图 一般利用服务器端的语言实现动态页面 技术: ASP, JSP, ASP.NET 等
几个重要的术语
动态 WEB 页—— DHTML
动态WEB页
服务器端的动态 WEB
动态WEB页
1 Web 窗体页介绍
几个重要的术语 ASP.NET 窗体 使用Visual Studio .NET 创建 Web 窗体
5.1 Web 窗体页介绍
ASP.NET 窗体
ASP.NET的执行模式 Web 窗体的组件
文件结构MyWebForm.aspx, MyWebForm.aspx.vb
可视组件和逻辑 视觉元素称作 Web 窗体“页”编程逻辑
Web 窗体页的结构
Web 窗体页介绍
多媒体 : ASP.NET 执行模式
ASP.NET窗体
Web 窗体页的结构
<%@Page Language="vb" Codebehind="WebForm1.aspx.vb"%><html>
<body> <form id="Form1" method="post" runat="server"> </form></body>
</html>
<%@Page Language="vb" Codebehind="WebForm1.aspx.vb"%><html>
<body> <form id="Form1" method="post" runat="server"> </form></body>
</html>
.aspx 扩展名 Page 属性
@ Page directive Body 属性 Form 属性
ASP.NET窗体
Web 窗体页的代码
三种代码方式 :
代码与内容完全混合在同一个文件 ( 混合模式 )
代码和内容在同一个文件的不同区域( 内嵌模式 )
代码在单独的文件中 ( 代码后置页 Code-behind)
Code-behind 是 Visual Studio .NET 默认方式
内嵌代码 Inline Code
代码和内容在同一文件 Code 和 HTML 在不同区域
<HTML> <asp:Button id="btn" runat="server"/>...</HTML>
<SCRIPT Language="vb" runat="server"> Sub btn_Click(s As Object, e As EventArgs)
Handles btn.Click ... End Sub</SCRIPT>
<HTML> <asp:Button id="btn" runat="server"/>...</HTML>
<SCRIPT Language="vb" runat="server"> Sub btn_Click(s As Object, e As EventArgs)
Handles btn.Click ... End Sub</SCRIPT>
代码后置 Code-Behind
代码从内容中分离出来 开发人员和界面设计人员可以独立设计
Form1.aspxForm1.aspx Form1.aspxForm1.aspx Form1.aspx.vbForm1.aspx.vb
<tags><tags> codecode
codecode
Separate filesSingle file
Code-Behind Web 页的工作原理
用户界面和业务逻辑分别处于不同文件 使用 @Page 把两个文件关联起来
Page1.aspx
<% @Page Language="vb"Inherits="Project.WebForm1" Codebehind="Page1.aspx.vb" Src = "Page1.aspx.vb" %>
Page1.aspx.vbPublic Class WebForm1 Private Sub cmd1_Click() … End SubEnd Class
1 Web 窗体页介绍
几个重要的术语 ASP.NET 窗体 使用Visual Studio .NET 创建 Web 窗体
5.1 Web 窗体页介绍
使用 Visual Studio .NET 创建 WEB 窗体
默认 Web 窗体 通过创建 ASP.NET Web 应用程序创建一个默认
的 Web 窗体 : WebForm1.aspx 新 Web 窗体
通过解决方案资源管理器创建一个新的 WEB 窗体
转换窗体 直接转换 HTML 页为 Web 窗体
Web 窗体页介绍
1 Web窗体页介绍 2 Web服务器事件处理 3 用户重定向 4 Web 窗体状态管理
Use Visual Studio .NET
ASP.NETVisual Studio.NET
ADO.NETVB.NET
Web 数据库设计与应用
第 3讲 Web窗体的创建与使用
2 Web 服务器事件处理
页面事件 页面事件的生命周期 PostBack 过程
事件模型 事件与事件处理程序
5.2 Web 服务器事件处理
页面事件生命周期
Page_LoadPage_Load
Page_UnloadPage_Unload
Textbox1_ChangedTextbox1_Changed
Button1_ClickButton1_Click
Page is disposed
Page_InitPage_Init
Control eventsControl events
Change EventsChange Events
Action EventsAction Events
Postback
处理 Postback 事件
Page_Load fires on every request
Initialize controls
Use Page.IsPostBack to execute conditional logic
Page.IsPostBack prevents reloading for each postback
Private Sub Page_Load(ByVal s As System.Object, _ ByVal e As System.EventArgs) _ Handles MyBase.Load If Not Page.IsPostBack Then 'executes only on initial page load End If 'this code executes on every requestEnd Sub
Private Sub Page_Load(ByVal s As System.Object, _ ByVal e As System.EventArgs) _ Handles MyBase.Load If Not Page.IsPostBack Then 'executes only on initial page load End If 'this code executes on every requestEnd Sub
事件与事件处理程序
Visual Studio .NET declares variables and creates an event procedure template
Using the Handles keyword Adds many event procedures to one event
Protected WithEvents cmd1 As _System.Web.UI.WebControls.Button
Private Sub cmd1_Click(ByVal s As System.Object, _ByVal e As System.EventArgs) _Handles cmd1.Click
Protected WithEvents cmd1 As _System.Web.UI.WebControls.Button
Private Sub cmd1_Click(ByVal s As System.Object, _ByVal e As System.EventArgs) _Handles cmd1.Click
<form id="form1" method="post" runat="server"> <asp:Button id="cmd1" runat="server"/></form>
<form id="form1" method="post" runat="server"> <asp:Button id="cmd1" runat="server"/></form>
1 Web 窗体页介绍 2 Web 服务器事件处理 3 用户重定向 4 Web 窗体状态管理
Use Visual Studio .NET
ASP.NETVisual Studio.NET
ADO.NETVB.NET
Web 数据库设计与应用
第 3讲 Web窗体的创建与使用
3 用户重定向
将用户从一个 Web 窗体页重定向到另一页 通过 HttpResponse.Redirect 方法可以实现重定向
5.3 用户重定向
Response.BufferOutput = TrueIf UserLanguage = "English" Then Response.Redirect("http://www.microsoft.com/usa")ElseIf UserLanguage = "Chinese" Then Response.Redirect("http://www.microsoft.com/china")End If
Response.BufferOutput = TrueIf UserLanguage = "English" Then Response.Redirect("http://www.microsoft.com/usa")ElseIf UserLanguage = "Chinese" Then Response.Redirect("http://www.microsoft.com/china")End If
4 Web 窗体状态管理
为什么要进行状态管理? HTTP 是“健忘”的协议 每次将 Web 页发送到服务器时,都会重新创建
Web 页 每次往返行程都会丢失所有与该页关联的信息
视图状态 ViewState
ASP.NET 页框架 中内置 此功能会在往返行程之间自动保留页以及页上
所有控件的属性值 状态管理的方法
5.4 Web 窗体状态管理
状态管理对象比较
保持方法 谁需要数据 保持多长时间 数据量大小Application 所有用户 整个应用程序生命期 任意大小Cookie 一个用户 可以很短,如果用户不删
除也可很长小的、简单数据
Form Post 一个用户 到下次请求(可跨越多个请求重复用)
任意大小
QueryString 一个或一组用户 同 Form Post 小的、简单数据Sessions 一个用户 用户活动时一直保持+一
段时间(一般 20 分钟)可以是任何大小,但是因为用户占用单独存储空间,所有它应该最小
Cache 所有或某些用户 根据需要 可大可小、可简单可复杂Context 一个用户 一个请求 可以保持大对象,但是一般不这样使用ViewState 一个用户 一个 Web 窗体 最小Config file 所有用户 知道配置文件被更新 可以保持大量数据,通常组织小的字符
串和 XML 结构
1 Web 窗体页介绍 2 Web 服务器事件处理 3 用户重定向 4 Web 窗体状态管理
Use Visual Studio .NET
ASP.NETVisual Studio.NET
ADO.NETVB.NET
Web 数据库设计与应用
第 3讲 Web窗体的创建与使用 回顾