asp.net简述Web Forms开发模式
详情请查阅:http://www.runoob.com/aspnet/aspnet-intro.html
1.Web Forms 是三种创建 ASP.NET 网站和 Web 应用程序的编程模式中的一种。
Web Forms 是最古老的 ASP.NET 编程模式,是整合了 HTML、服务器控件和服务器代码的事件驱动网页。
Web Forms 是在服务器上编译和执行的,再由服务器生成 HTML 显示为网页。
Web Forms 有数以百计的 Web 控件和 Web 组件用来创建带有数据访问的用户驱动网站。
2.Web Forms - HTML 页面
转换 HTML 页面为 ASP.NET 页面最简单的方法是,直接复制一个 HTML 文件,并把新文件的扩展名改成 .aspx 。
<html>
<body bgcolor="yellow">
<center>
<h2>Hello RUNOOB.COM!</h2>
<p><%Response.Write(now())%></p>
</center>
</body>
</html>
ASP.NET 对比经典 ASP
3.Web Forms - 服务器控件
服务器控件是服务器可理解的标签。
有三种类型的服务器控件:
- HTML 服务器控件 - 创建的 HTML 标签
- Web 服务器控件 - 新的 ASP.NET 标签
- Validation 服务器控件 - 用于输入验证
ASP.NET - HTML 服务器控件
HTML 服务器控件是服务器可理解的 HTML 标签。
ASP.NET 文件中的 HTML 元素,默认是作为文本进行处理的。要想让这些元素可编程,需向 HTML 元素中添加 runat="server" 属性。这个属性表示,该元素将被作为服务器控件进行处理。同时需要添加 id 属性来标识服务器控件。id 引用可用于操作运行时的服务器控件。
注释:所有 HTML 服务器控件必须位于带有 runat="server" 属性的 <form> 标签内。runat="server" 属性表明了该表单必须在服务器上进行处理。同时也表明了包含在它内部的控件可被服务器脚本访问。
4.ASP.NET Web Forms - 事件
事件句柄是一种针对给定事件来执行代码的子例程。
5.ASP.NET Web Forms - HTML 表单
所有的服务器控件都必须出现在 <form> 标签中,<form> 标签必须包含 runat="server" 属性。
ASP.NET Web 表单
所有的服务器控件都必须出现在 <form> 标签中,<form> 标签必须包含 runat="server" 属性。runat="server" 属性表明该表单必须在服务器上进行处理。同时也表明了包含在它内部的控件可被服务器脚本访问:
<form runat="server">
...HTML + server controls
</form>
注释:该表单总是被提交到自身页面。如果指定了一个 action 属性,它会被忽略。如果省略了 method 属性,它将会默认设置 method="post"。同时,如果没有指定 name 和 id 属性,它们会由 ASP.NET 自动分配。
注释:一个 .aspx 页面只能包含一个 <form runat="server"> 控件!
提交表单
表单通常通过点击按钮来提交。ASP.NET 中的 Button 服务器控件的格式如下:
<script runat="server">
Sub submit(Source As Object, e As EventArgs)
button1.Text="You clicked me!"
End Sub
</script> <html>
<body> <form runat="server">
<asp:Button id="button1" Text="Click me!" runat="server" OnClick="submit" />
</form> </body>
</html>
6.ASP.NET Web Forms - 维持 ViewState
通过在 Web Form 中维持对象的 ViewState(视图状态),可以省去大量的编码工作。
维持 ViewState(视图状态)
在 ASP .NET 中,当一个表单被提交时,表单会连同表单值一起出现在浏览器窗口中。如何做到的呢?这是因为 ASP .NET 维持了 ViewState。 ViewState 会在页面被提交到服务器时表明它的状态。这个状态是通过在带有 <form runat="server"> 控件的每个页面上放置一个隐藏域定义的。
维持 ViewState 是 ASP.NET Web Forms 的默认设置。如果想不维持 ViewState,请在 .aspx 页面顶部包含指令 <%@ Page EnableViewState="false" %> ,或者向任意控件添加属性 EnableViewState="false" 。
7.ASP.NET Web Forms - TextBox 控件
TextBox 控件用于创建用户可输入文本的文本框。
TextBox 控件
8.ASP.NET Web Forms - Button 控件
Button 控件用于显示一个下压按钮。下压按钮可能是一个提交按钮或者是一个命令按钮。在默认情况下,这个控件是提交按钮。
提交按钮没有命令名称,当它被点击时,它会把页面传回到服务器。可以编写一些事件句柄,当提交按钮被点击时,用来控制动作的执行。
命令按钮有命令名称,并且允许在页面上创建多个 Button 控件。可以编写一些时间句柄,当命令按钮被点击时,用来控制动作的执行。
添加脚本
<script runat="server">
Sub submit(sender As Object, e As EventArgs)
lbl1.Text="Your name is " & txt1.Text
End Sub
</script> <html>
<body> <form runat="server">
Enter your name:
<asp:TextBox id="txt1" runat="server" />
<asp:Button OnClick="submit" Text="Submit" runat="server" />
<p><asp:Label id="lbl1" runat="server" /></p>
</form> </body>
</html>
9.ASP.NET Web Forms - 数据绑定
可以使用数据绑定(Data Binding)来完成带可选项的列表,这些可选项来自某个导入的数据源,比如数据库、XML 文件或者脚本。
数据绑定
下面的控件是支持数据绑定的列表控件:
- asp:RadioButtonList
- asp:CheckBoxList
- asp:DropDownList
- asp:Listbox
以上每个控件的可选项通常是在一个或者多个 asp:ListItem 控件中定义,如下:
<html>
<body> <form runat="server">
<asp:RadioButtonList id="countrylist" runat="server">
<asp:ListItem value="N" text="Norway" />
<asp:ListItem value="S" text="Sweden" />
<asp:ListItem value="F" text="France" />
<asp:ListItem value="I" text="Italy" />
</asp:RadioButtonList>
</form> </body>
</html>
10.ASP.NET Web Forms - ArrayList 对象
ArrayList 对象是包含单个数据值的项目的集合。
创建 ArrayList
ArrayList 对象是包含单个数据值的项目的集合。
通过 Add() 方法向 ArrayList 添加项目。
下面的代码创建了一个名为 mycountries 的 ArrayList 对象,并添加了四个项目:
<script runat="server">
Sub Page_Load
if Not Page.IsPostBack then
dim mycountries=New ArrayList
mycountries.Add("Norway")
mycountries.Add("Sweden")
mycountries.Add("France")
mycountries.Add("Italy")
end if
end sub
</script>
在默认情况下,一个 ArrayList 对象包含 16 个条目。可通过 TrimToSize() 方法把 ArrayList 调整为最终尺寸:
<script runat="server">
Sub Page_Load
if Not Page.IsPostBack then
dim mycountries=New ArrayList
mycountries.Add("Norway")
mycountries.Add("Sweden")
mycountries.Add("France")
mycountries.Add("Italy")
mycountries.TrimToSize()
end if
end sub
</script>
通过 Sort() 方法,ArrayList 也能够按照字母顺序或者数字顺序进行排序:
mycountries.Sort()
要实现反向排序,请在 Sort() 方法后应用 Reverse() 方法:
mycountries.Reverse()
绑定数据到 ArrayList
ArrayList 对象可为下列的控件自动生成文本和值:
- asp:RadioButtonList
- asp:CheckBoxList
- asp:DropDownList
- asp:Listbox
为了绑定数据到 RadioButtonList 控件,首先要在 .aspx 页面中创建一个 RadioButtonList 控件(不带任何 asp:ListItem 元素):
然后添加创建列表的脚本,并且绑定列表中的值到 RadioButtonList 控件:
<script runat="server">
Sub Page_Load
if Not Page.IsPostBack then
dim mycountries=New ArrayList
mycountries.Add("Norway")
mycountries.Add("Sweden")
mycountries.Add("France")
mycountries.Add("Italy")
mycountries.TrimToSize()
mycountries.Sort()
rb.DataSource=mycountries
rb.DataBind()
end if
end sub
</script> <html>
<body> <form runat="server">
<asp:RadioButtonList id="rb" runat="server" />
</form> </body>
</html>
RadioButtonList 控件的 DataSource 属性被设置为该 ArrayList,它定义了这个 RadioButtonList 控件的数据源。RadioButtonList 控件的 DataBind() 方法把 RadioButtonList 控件与数据源绑定在一起。
注释:数据值作为控件的 Text 和 Value 属性来使用。如需添加不同于 Text 的 Value,请使用 Hashtable 对象或者 SortedList 对象。
11.ASP.NET Web Forms - Hashtable 对象
Hashtable 对象包含用键/值对表示的项目。
http://www.runoob.com/aspnet/aspnet-hashtable.html
创建 Hashtable
Hashtable 对象包含用键/值对表示的项目。键被用作索引,通过搜索键,可以实现对值的快速搜索。
通过 Add() 方法向 Hashtable 添加项目。
数据绑定
Hashtable 对象可为下列的控件自动生成文本和值:
- asp:RadioButtonList
- asp:CheckBoxList
- asp:DropDownList
- asp:Listbox
为了绑定数据到 RadioButtonList 控件,首先要在 .aspx 页面中创建一个 RadioButtonList 控件(不带任何 asp:ListItem 元素):
然后添加创建列表的脚本,并且绑定列表中的值到 RadioButtonList 控件:
然后添加一个子例程,当用户点击 RadioButtonList 控件中的某个项目时,该子例程会被执行。当某个单选按钮被点击时,label 中会出现一行文本:
<script runat="server">
sub Page_Load
if Not Page.IsPostBack then
dim mycountries=New Hashtable
mycountries.Add("N","Norway")
mycountries.Add("S","Sweden")
mycountries.Add("F","France")
mycountries.Add("I","Italy")
rb.DataSource=mycountries
rb.DataValueField="Key"
rb.DataTextField="Value"
rb.DataBind()
end if
end sub sub displayMessage(s as Object,e As EventArgs)
lbl1.text="Your favorite country is: " & rb.SelectedItem.Text
end sub
</script> <html>
<body> <form runat="server">
<asp:RadioButtonList id="rb" runat="server"
AutoPostBack="True" onSelectedIndexChanged="displayMessage" />
<p><asp:label id="lbl1" runat="server" /></p>
</form> </body>
</html>
12.ASP.NET Web Forms - SortedList 对象
SortedList 对象结合了 ArrayList 对象和 Hashtable 对象的特性。
SortedList 对象
SortedList 对象包含用键/值对表示的项目。SortedList 对象按照字母顺序或者数字顺序自动地对项目进行排序。
通过 Add() 方法向 SortedList 添加项目。通过 TrimToSize() 方法把 SortedList 调整为最终尺寸。
数据绑定
SortedList 对象可为下列的控件自动生成文本和值:
- asp:RadioButtonList
- asp:CheckBoxList
- asp:DropDownList
- asp:Listbox
<script runat="server">
sub Page_Load
if Not Page.IsPostBack then
dim mycountries=New SortedList
mycountries.Add("N","Norway")
mycountries.Add("S","Sweden")
mycountries.Add("F","France")
mycountries.Add("I","Italy")
rb.DataSource=mycountries
rb.DataValueField="Key"
rb.DataTextField="Value"
rb.DataBind()
end if
end sub sub displayMessage(s as Object,e As EventArgs)
lbl1.text="Your favorite country is: " & rb.SelectedItem.Text
end sub
</script> <html>
<body> <form runat="server">
<asp:RadioButtonList id="rb" runat="server"
AutoPostBack="True" onSelectedIndexChanged="displayMessage" />
<p><asp:label id="lbl1" runat="server" /></p>
</form> </body>
</html>
13.ASP.NET Web Forms - XML 文件
可以绑定 XML 文件到列表控件。
一个名为 "countries.xml" 的 XML 文件:
<?xml version="1.0" encoding="ISO-8859-1"?> <countries> <country>
<text>Norway</text>
<value>N</value>
</country> <country>
<text>Sweden</text>
<value>S</value>
</country> <country>
<text>France</text>
<value>F</value>
</country> <country>
<text>Italy</text>
<value>I</value>
</country> </countries>
绑定 DataSet 到 List 控件
http://www.runoob.com/aspnet/aspnet-xml.html
14.ASP.NET Web Forms - Repeater 控件
Repeater 控件用于显示被绑定在该控件上的项目的重复列表。
绑定 DataSet 到 Repeater 控件
http://www.runoob.com/aspnet/aspnet-repeater.html
15.ASP.NET Web Forms - DataList 控件
DataList 控件,类似于 Repeater 控件,用于显示绑定在该控件上的项目的重复列表。不过,DataList 控件会默认地在数据项目上添加表格。
16.ASP.NET Web Forms - 数据库连接
17.ASP.NET Web Forms - 母版页
母版页为网站的其他页面提供模版。
母版页
母版页允许为web 应用程序中的所有页面(或页面组)创建一致的外观和行为。
母版页为其他页面提供模版,带有共享的布局和功能。母版页为内容定义了可被内容页覆盖的占位符。输出结果是母版页和内容页的组合。
内容页包含您想要显示的内容。
当用户请求内容页时,ASP.NET 会对页面进行合并以生成结合了母版页布局和内容页内容的输出。
母版页实例
<%@ Master %> <html>
<body>
<h1>Standard Header From Masterpage</h1>
<asp:ContentPlaceHolder id="CPH1" runat="server">
</asp:ContentPlaceHolder>
</body>
</html>
上面的母版页是一个为其他页面设计的普通 HTML 模版页。
@ Master 指令定义它为一个母版页。
母版页为单独的内容包含占位标签 <asp:ContentPlaceHolder>。
id="CPH1" 属性标识占位符,在相同母版页中允许多个占位符。
这个母版页被保存为 "master1.master"。
注释:母版页也能够包含代码,允许动态的内容。
内容页实例
<%@ Page MasterPageFile="master1.master" %> <asp:Content ContentPlaceHolderId="CPH1" runat="server">
<h2>Individual Content</h2>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</asp:Content>
上面的内容页是站点中独立的内容页中的一个。
@ Page 指令定义它为一个标准的内容页。
内容页包含内容标签 <asp:Content>,该标签引用了母版页(ContentPlaceHolderId="CPH1")。
这个内容页被保存为 "mypage1.aspx"。
当用户请求该页面时,ASP.NET 就会将母版页与内容页进行合并。
注释:内容文本必须位于 <asp:Content> 标签内部。标签外的内容文本是不允许的。
带控件的内容页
<%@ Page MasterPageFile="master1.master" %> <asp:Content ContentPlaceHolderId="CPH1" runat="server">
<h2>RUNOOB</h2>
<form runat="server">
<asp:TextBox id="textbox1" runat="server" />
<asp:Button id="button1" runat="server" text="Button" />
</form>
</asp:Content>
18.ASP.NET Web Forms - 导航
网站导航
ASP.NET 带有内建的导航控件。
asp.net简述Web Forms开发模式的更多相关文章
- ASP.NET Web Froms开发模式中实现程序集的延迟加载
延迟加载是一个很大的诱惑,可以达到一些比较好的效果,比如: 1.在实体框架中,由于关联数据的数量和使用时机是不确定的,通过延迟加载,仅在使用的时候去执行关联数据的查询操作,减少无谓的数据查询操作,可以 ...
- C# 动态生成word文档 [C#学习笔记3]关于Main(string[ ] args)中args命令行参数 实现DataTables搜索框查询结果高亮显示 二维码神器QRCoder Asp.net MVC 中 CodeFirst 开发模式实例
C# 动态生成word文档 本文以一个简单的小例子,简述利用C#语言开发word表格相关的知识,仅供学习分享使用,如有不足之处,还请指正. 在工程中引用word的动态库 在项目中,点击项目名称右键-- ...
- ASP.NET的三种开发模式
前言 ASP.NET 是一个免费的Web开发框架,是由微软在.NET Framework框架中所提供的,或者说ASP.NET是开发Web应用程序的类库,封装在System.Web.dll 文件中.AS ...
- ASP.NET Core Web API 开发-RESTful API实现
ASP.NET Core Web API 开发-RESTful API实现 REST 介绍: 符合REST设计风格的Web API称为RESTful API. 具象状态传输(英文:Representa ...
- ASP.Net的两种开发模式
一.ASP.Net的两种开发模式 1.1 ASP.Net WebForm的开发模式 (1)处理流程 在传统的WebForm模式下,我们请求一个例如http://www.aspnetmvc.com/bl ...
- 初入码田--ASP.NET MVC4 Web应用开发之二 实现简单的增删改查
初入码田--ASP.NET MVC4 Web应用之创建一个空白的MVC应用程序 初入码田--ASP.NET MVC4 Web应用开发之一 实现简单的登录 2016-07-29 一.创建M002Adm ...
- 初入码田--ASP.NET MVC4 Web应用开发之一 实现简单的登录
初入码田--ASP.NET MVC4 Web应用之创建一个空白的MVC应用程序 初入码田--ASP.NET MVC4 Web应用开发之二 实现简单的增删改查 2016-07-24 一.创建T4模板,建 ...
- asp.net 的三种开发模式
一, Web Pages 是三种创建 ASP.NET 网站和 Web 应用程序的编程模式中的一种. 其他两种编程模式是 Web Forms 和 MVC(Model View Controller 模型 ...
- Java web MVC开发模式入门感悟
当我进行第一个完整的java web项目的开发时,对以前所学的Java web知识体系有了一个清晰的进阶认识.我觉得非常有必要对此进行必要的总结. MVC,意指model(数据持久层)+viewer( ...
随机推荐
- unset MAILCHECK
文件/etc/profile尾部有: unset MAILCHECK 为了解决:每次登陆linux总是提示:you hava a new mail
- leetcode 26—Remove Duplicates from Sorted Array
Given a sorted array nums, remove the duplicates in-place such that each element appear only once an ...
- Android实现导航菜单随着ListView联动,当导航菜单遇到顶部菜单时停止在哪里,并且listview仍能滑动
需求:现要实现一个特殊UI的处理,如下图所示: 该布局的上面是一个“按钮”,中间是一个“空白布局(当然也可以是ViewPager等)”,下面是一个页面的导航菜单,底部是一个ListView. 要求:滑 ...
- Android 给TextView中的字体加上“中间线”
大家都知道在做购物App或者购物网站的时候,商品价格往往会有一个“现价”和“原价”而原价往往会在中间加上一个黑色的横线.便于醒目客户,但是这种效果在App中应该怎样做呢? 废话不多少,直接给大家看代码 ...
- MVC的BundleConfig类
在BundleConfig.cs文件中,包含了一些应用程序中使用的脚本和样式表的文件路径.并可以使用通配符.示例如下: using System.Web; using System.Web.Optim ...
- CAN2.0A 和CAN2.0B
CAN2.0A 和CAN2.0B 原创 2015年08月03日 16:03:08 3969 CAN2.0A 是CAN协议的PART A部分,此部分定义了11bit的标识区 .CAN2.0B 是CAN协 ...
- 王立平--查看SQLite中的数据信息
Eclipse菜单Window - Open Perspective - DDMS进入DDMS视图. 然后File Explorer View中依次展开路径/data/data/package_nam ...
- Java技术——String类为什么是不可变的
0. 前言 如果一个对象,在它创建完成之后不能再改变它的状态,包括对象内的成员变量.基本数据类型的值等等.那么这个对象就是不可变的.众所周知String类就是不可变的.转载请注明出处为SEU_Ca ...
- EZ 2018 1 21 2018noip第五次膜你赛
这次分数普遍偏高,而且yu'ben'ao又AK了! 但是最后一题莫名爆0让我很感伤啊(搓了1个多小时的20分暴力)! 难度偏低,主要是T2没剪枝,炸了3个点. T1 这种SB题恐怕是千年难遇了,PJ- ...
- MiZ702学习笔记11——如何使用vivado isim仿真
说到vivado的仿真确实是很有意思,不管是ISE还是Quartus都可以自己自动生成测试平台的完整构架,但是vivado不行,所有的测试代码自己写!(我反正是查了好久,都没发现vivado如何自动生 ...