世界軟件巨擘微軟公司提出的.Net概念給全世界的IT產業指明了新的發展方向,無論是IT業內人士、還是企業決策者,快速領會這個新概念的含義及深遠影響,都顯得非常必要。
本文就向你介紹.Net之ASP Web Form的內容,旨在帶領你快速理解其相關概念、含義及作用。全文包括以下各節:
什麼是ASP.Net的Web Forms
編寫第一個Web Form頁面
使用ASP的<% %>塊
處理服務器控件的事件
使用定制的服務器控件
表單驗證控件
Code-Behind類型的Web Forms
什麼是ASP.Net的Web Forms?
作為ASP的進化版本,ASP.Net之Web Forms架構彌補了它的許多關鍵功能的不足。比如:
能夠創建並使用可再用用戶界面控件:這些控件可以壓縮到公用功能中,從而減少頁面代碼。
能夠建立清晰有序的程序結構,而不再是象意大利式細苗條一樣的代碼段。
能夠提供強大的WYSIWYG頁面設計視圖
更全面地描述ASP.Net之Web forms,可以這樣說:
ASP.Net Web Forms使創建動態Web用戶界面更簡單、更強大
ASP.Net Web Form頁面無需腳本庫程序或者cookIE,能夠滿足任何浏覽器客戶端的需要
ASP.Net Web Form頁面兼容ASP的語法結構
ASP.Net 服務器控件使壓縮合並公用功能簡單易行
ASP.Net 自帶45個內置服務器控件,並且支持第3方產品
ASP.Net 服務器控件可以創建適用於高、低版本浏覽器的Html內容
ASP.Net 模板提供了定制列表服務器控件外觀及行為的簡單方法
ASP.NET的Web Form頁面是純文本文件,以.aspx為文件擴展名。 當客戶端浏覽器請求一個.aspx文件時,ASP.NET將解析並編譯目標文件為.Net架構類,接著這個類動態處理進來的請求。注意:.ASPx文件只在第一次訪問時被編譯,隨後的再次請求將重用這個類實例。這與JSP的處理方式大致相同。呵呵,英雄所見最後總是相同 :-)
創建ASP.Net頁面的最簡單方法就是將現有Html文件的後綴名改為.ASPx,不需要修改任何代碼。下面的例程執行收集用戶名稱以及選擇目錄的功能:
Intro1.ASPx
點擊執行
查看源代碼
Intro2.ASPx
點擊執行
查看源代碼
Intro3.ASPx
點擊執行
查看源代碼
使用<% %>代碼塊雖然可以定制ASP.Net頁面的輸出內容,但卻不能很好地建立一個清晰的Html編程模型。這可以從上例的源代碼中顯而易見地看到。
處理服務器控件的事件
每個ASP.NET服務器控件都可以當做一個對象模型看到,包括了屬性、方法和事件。ASP.Net應用開發人員利用這些特征就能夠清晰地修改頁面並建立動態交互功能。
以下的例子描述了如何處理<asp:button runat=server>控件的OnClick事件,從而進一步操縱<ASP:label runat=server>控件的"text"屬性:
Intro6.ASPx
點擊執行
查看源代碼
這個例子與前面列舉的"Intro3"例程功能相當。但是,你可以看到,這裡的代碼使用了服務器控件,從而使程序結構更加清晰易懂。
使用定制的服務器控件
ASP.Net系統自帶了45個內置的服務器控件。除了使用這些控件外,開發者還可以選擇第3方的控件產品。
以下例子描述了如何使用日歷控件。在頁面中使用<acme:calendar runat=server>標記進行日歷控件的定義。頁面頂部的<% Register %>標識負責使用控件執行的"Acme"名字空間登記"Acme" XML標記前綴,隨後在運行時ASP.Net頁面解析器將使用這個名字空間轉載日歷控件類實例。
Intro7.ASPx
點擊執行
查看源代碼
上面例子中的日歷控件可以適用於高、低版本的浏覽器。在高版本浏覽器中將產生DHtml輸出,從而在日期、月份的選擇上不再需要與服務器進行往返處理。對於低版本浏覽器,控件將產生標准的Html3.2內容,客戶端交互操作時將有與服務器端的往返處理過程發生。
然而,不管訪問頁面的是高版本浏覽器還是低版本浏覽器,需要編寫的代碼是相同的。日歷控件本身被壓縮進相應的邏輯處理過程中。
列表、數據以及數據綁定
ASP.Net內置一套數據綁定與列表控件,可以使用它們設計訪問數據庫的定制用戶界面。下面的例子描述了如何使用<ASP:datagrid runat=server>控件綁定來自SQL數據庫查詢所得的書籍信息:
p>
Intro7.5.ASPx
點擊執行
查看源代碼
<asp:datagrid runat=server> DataGrid 控件借助傳統的格子用戶界面提供了快速顯示數據結果的簡易方法。ASP.Net開發者也可以選擇使用<ASP:DataList runat=server> DataList 控件以及定制的"ItemTemplate" 模板去定制數據信息:
Intro8.ASPx
點擊執行
查看源代碼
從上面的例子中我們可以看到,<ASP:datalist runat=server> 控件能夠使最終用戶精確地控制列表中每個項目的結構與布局(通過設置ItemTemplate模板屬性)。同時,這個控件也能夠自動地處理2列內容自動換行的情況,方法是:使用datalist的Repeatcolumn屬性控制列數目。
請看下面使用<ASP:datalist runat=server>控件的例子:
Intro9.ASPx
點擊執行
查看源代碼表單驗證控件
ASP.Net之Web Forms頁面架構提供了一套服務器
驗證控件可以象其他服務器控件一樣添加到ASP.Net頁面中。有一些處理特殊類型的驗證控件,比如說:范圍檢查或者匹配判斷再加上一個RequiredFIEldValidator控件,就可以使用戶不會跳過一個輸入域的操作。
以下的例子描述了使用2個<ASP:requirefIEldvalidator runat=server>控件驗證頁面上TextBox和DropDownList控件的內容:
Intro10.ASPx
點擊執行
查看源代碼
這裡的代碼也同樣適用於高、低版本的浏覽器。對於高版本浏覽器,將在客戶端通過Javascript
ASP.Net頁面開發者可以隨意地在運行時檢查Page.IsVaild屬性的數值,從而判斷頁面上所有的驗證服務器控件當前是否有效。這樣就提供了判斷是否執行商業邏輯的簡易“單行”處理方法。比如,下面的例子中,在進行對選擇目錄的數據庫搜索動作前,首先檢查一下Page.IsValid的數值:
Intro11.ASPx
點擊執行
查看源代碼點擊執行
查看源代碼