asp.net簡述Web Forms開發模式

詳情請查閱:http://www.runoob.com/aspnet/aspnet-intro.htmlhtml

1.Web Forms 是三種建立 ASP.NET 網站和 Web 應用程序的編程模式中的一種。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 對比經典 ASPpost

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 服務器控件的格式以下:

<asp:Button id="id" text="label" OnClick="sub" runat="server" />
id 屬性爲按鈕定義了一個惟一的名稱,text 屬性爲按鈕分配了一個標籤。onClick 事件句柄規定了一個要執行的已命名的子例程。
<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"

lamp 註釋:母版頁也可以包含代碼,容許動態的內容。

內容頁實例

<%@ 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 帶有內建的導航控件。

相關文章
相關標籤/搜索