詳情請查閱: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
服務器控件是服務器可理解的標籤。網站
有三種類型的服務器控件:編碼
HTML 服務器控件是服務器可理解的 HTML 標籤。
ASP.NET 文件中的 HTML 元素,默認是做爲文本進行處理的。要想讓這些元素可編程,需向 HTML 元素中添加 runat="server" 屬性。這個屬性表示,該元素將被做爲服務器控件進行處理。同時須要添加 id 屬性來標識服務器控件。id 引用可用於操做運行時的服務器控件。
註釋:全部 HTML 服務器控件必須位於帶有 runat="server" 屬性的 <form> 標籤內。runat="server" 屬性代表了該表單必須在服務器上進行處理。同時也代表了包含在它內部的控件可被服務器腳本訪問。
事件句柄是一種針對給定事件來執行代碼的子例程。
全部的服務器控件都必須出如今 <form> 標籤中,<form> 標籤必須包含 runat="server" 屬性。
全部的服務器控件都必須出如今 <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>
經過在 Web Form 中維持對象的 ViewState(視圖狀態),能夠省去大量的編碼工做。
在 ASP .NET 中,當一個表單被提交時,表單會連同表單值一塊兒出如今瀏覽器窗口中。如何作到的呢?這是由於 ASP .NET 維持了 ViewState。 ViewState 會在頁面被提交到服務器時代表它的狀態。這個狀態是經過在帶有 <form runat="server"> 控件的每一個頁面上放置一個隱藏域定義的。
維持 ViewState 是 ASP.NET Web Forms 的默認設置。若是想不維持 ViewState,請在 .aspx 頁面頂部包含指令 <%@ Page EnableViewState="false" %> ,或者向任意控件添加屬性 EnableViewState="false" 。
TextBox 控件用於建立用戶可輸入文本的文本框。
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>
能夠使用數據綁定(Data Binding)來完成帶可選項的列表,這些可選項來自某個導入的數據源,好比數據庫、XML 文件或者腳本。
下面的控件是支持數據綁定的列表控件:
以上每一個控件的可選項一般是在一個或者多個 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>
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 對象可爲下列的控件自動生成文本和值:
爲了綁定數據到 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 對象。
Hashtable 對象包含用鍵/值對錶示的項目。
http://www.runoob.com/aspnet/aspnet-hashtable.html
Hashtable 對象包含用鍵/值對錶示的項目。鍵被用做索引,經過搜索鍵,能夠實現對值的快速搜索。
經過 Add() 方法向 Hashtable 添加項目。
Hashtable 對象可爲下列的控件自動生成文本和值:
爲了綁定數據到 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>
SortedList 對象結合了 ArrayList 對象和 Hashtable 對象的特性。
SortedList 對象包含用鍵/值對錶示的項目。SortedList 對象按照字母順序或者數字順序自動地對項目進行排序。
經過 Add() 方法向 SortedList 添加項目。經過 TrimToSize() 方法把 SortedList 調整爲最終尺寸。
SortedList 對象可爲下列的控件自動生成文本和值:
<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>
能夠綁定 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>
http://www.runoob.com/aspnet/aspnet-xml.html
Repeater 控件用於顯示被綁定在該控件上的項目的重複列表。
http://www.runoob.com/aspnet/aspnet-repeater.html
DataList 控件,相似於 Repeater 控件,用於顯示綁定在該控件上的項目的重複列表。不過,DataList 控件會默認地在數據項目上添加表格。
母版頁爲網站的其餘頁面提供模版。
母版頁容許爲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>
ASP.NET 帶有內建的導航控件。