程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> .NET之ASP Web Form快速入門

.NET之ASP Web Form快速入門

編輯:.NET實例教程

世界軟件巨擘微軟公司提出的.Net概念給全世界的IT產業指明了新的發展方向,無論是IT業內人士、還是企業決策者,快速領會這個新概念的含義及深遠影響,都顯得非常必要。

 本文就向你介紹.Net之ASP Web Form的內容,旨在帶領你快速理解其相關概念、含義及作用。全文包括以下各節:

什麼是ASP.Net的Web Forms
編寫第一個Web Form頁面
使用ASP的<% %>塊
處理服務器控件的事件
使用定制的服務器控件
列表、數據以及數據綁定
表單驗證控件
Code-Behind類型的Web Forms

什麼是ASP.Net的Web Forms?
ASP.Net的Web Forms頁面架構是一個可升級的公用語言運行程序模型,它可被用在服務器端動態地建立web頁面。

作為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 驗證控件可以容易地處理客戶端或者服務器端的數據驗證工作
  ASP.NET的Web Form頁面是純文本文件,以.aspx為文件擴展名。 當客戶端浏覽器請求一個.aspx文件時,ASP.NET將解析並編譯目標文件為.Net架構類,接著這個類動態處理進來的請求。注意:.ASPx文件只在第一次訪問時被編譯,隨後的再次請求將重用這個類實例。這與JSP的處理方式大致相同。呵呵,英雄所見最後總是相同 :-)

  創建ASP.Net頁面的最簡單方法就是將現有Html文件的後綴名改為.ASPx,不需要修改任何代碼。下面的例程執行收集用戶名稱以及選擇目錄的功能:

.NET之ASP Web Form快速入門
Intro1.ASPx

點擊執行

查看源代碼

  在上面的例子中,當用戶點?Lookup"按鈕後,看上去什麼也沒有發生。這是因為這個.ASPx文件只包含靜態Html內容。

使用ASP的<% %>塊

  ASP.Net提供了兼容ASP的語法結構,這其中包括支持<% %>代碼塊,使用它混合編寫Html以及.ASPx代碼。這些代碼段按照從上到下的順序在頁面中被執行。

請看以下的例子:

.NET之ASP Web Form快速入門
Intro2.ASPx

點擊執行

查看源代碼

  與ASP不同,ASPx文件中位於<% %>之間的代碼是被編譯過的,而不是使用腳本引擎解釋執行的。這樣處理後,就大大地提高了程序的運行效率。

  同時,在ASP.Net中可以象ASP一樣使用<% %>代碼塊動態地修改Html的輸出內容。比如:

.NET之ASP Web Form快速入門
Intro3.ASPx

點擊執行

查看源代碼



  使用<% %>代碼塊雖然可以定制ASP.Net頁面的輸出內容,但卻不能很好地建立一個清晰的Html編程模型。這可以從上例的源代碼中顯而易見地看到。

處理服務器控件的事件
每個ASP.NET服務器控件都可以當做一個對象模型看到,包括了屬性、方法和事件。ASP.Net應用開發人員利用這些特征就能夠清晰地修改頁面並建立動態交互功能。

以下的例子描述了如何處理<asp:button runat=server>控件的OnClick事件,從而進一步操縱<ASP:label runat=server>控件的"text"屬性:

.NET之ASP Web Form快速入門
Intro6.ASPx

點擊執行

查看源代碼



這個例子與前面列舉的"Intro3"例程功能相當。但是,你可以看到,這裡的代碼使用了服務器控件,從而使程序結構更加清晰易懂。

使用定制的服務器控件
ASP.Net系統自帶了45個內置的服務器控件。除了使用這些控件外,開發者還可以選擇第3方的控件產品。

以下例子描述了如何使用日歷控件。在頁面中使用<acme:calendar runat=server>標記進行日歷控件的定義。頁面頂部的<% Register %>標識負責使用控件執行的"Acme"名字空間登記"Acme" XML標記前綴,隨後在運行時ASP.Net頁面解析器將使用這個名字空間轉載日歷控件類實例。

.NET之ASP Web Form快速入門
Intro7.ASPx

點擊執行

查看源代碼



上面例子中的日歷控件可以適用於高、低版本的浏覽器。在高版本浏覽器中將產生DHtml輸出,從而在日期、月份的選擇上不再需要與服務器進行往返處理。對於低版本浏覽器,控件將產生標准的Html3.2內容,客戶端交互操作時將有與服務器端的往返處理過程發生。

然而,不管訪問頁面的是高版本浏覽器還是低版本浏覽器,需要編寫的代碼是相同的。日歷控件本身被壓縮進相應的邏輯處理過程中。

列表、數據以及數據綁定
ASP.Net內置一套數據綁定與列表控件,可以使用它們設計訪問數據庫的定制用戶界面。下面的例子描述了如何使用<ASP:datagrid runat=server>控件綁定來自SQL數據庫查詢所得的書籍信息:

p>.NET之ASP Web Form快速入門
Intro7.5.ASPx

點擊執行

查看源代碼



<asp:datagrid runat=server> DataGrid 控件借助傳統的格子用戶界面提供了快速顯示數據結果的簡易方法。ASP.Net開發者也可以選擇使用<ASP:DataList runat=server> DataList 控件以及定制的"ItemTemplate" 模板去定制數據信息:

.NET之ASP Web Form快速入門
Intro8.ASPx

點擊執行

查看源代碼



從上面的例子中我們可以看到,<ASP:datalist runat=server> 控件能夠使最終用戶精確地控制列表中每個項目的結構與布局(通過設置ItemTemplate模板屬性)。同時,這個控件也能夠自動地處理2列內容自動換行的情況,方法是:使用datalist的Repeatcolumn屬性控制列數目。

請看下面使用<ASP:datalist runat=server>控件的例子:

.NET之ASP Web Form快速入門
Intro9.ASPx

點擊執行

查看源代碼

表單驗證控件
ASP.Net之Web Forms頁面架構提供了一套服務器控件驗證方法,它們簡單易用、功能強大,既可以檢查表單輸入內容的正確性,還可以顯示相應的反饋信息。

驗證控件可以象其他服務器控件一樣添加到ASP.Net頁面中。有一些處理特殊類型的驗證控件,比如說:范圍檢查或者匹配判斷再加上一個RequiredFIEldValidator控件,就可以使用戶不會跳過一個輸入域的操作。

以下的例子描述了使用2個<ASP:requirefIEldvalidator runat=server>控件驗證頁面上TextBox和DropDownList控件的內容:

.NET之ASP Web Form快速入門
Intro10.ASPx

點擊執行

查看源代碼

這裡的代碼也同樣適用於高、低版本的浏覽器。對於高版本浏覽器,將在客戶端通過Javascript和DHtml進行驗證工作。對於低版本浏覽器,驗證會在服務器端執行。

ASP.Net頁面開發者可以隨意地在運行時檢查Page.IsVaild屬性的數值,從而判斷頁面上所有的驗證服務器控件當前是否有效。這樣就提供了判斷是否執行商業邏輯的簡易“單行”處理方法。比如,下面的例子中,在進行對選擇目錄的數據庫搜索動作前,首先檢查一下Page.IsValid的數值:

.NET之ASP Web Form快速入門
Intro11.ASPx

點擊執行

查看源代碼

Code-Behind 類型的 Web Forms
ASP.Net支持兩種建立動態頁面的方法。第一種就是上面演示例子中涉及到的,在原始.ASPx文件中進行定義。另外一個方法叫做Code-behind,用它可以使頁面代碼更加清晰地與其內容進行分離。

請看下面的演示例子:
 .NET之ASP Web Form快速入門
Intro12.ASPx

點擊執行

查看源代碼

結 語

通過以上的圖文例示介紹,我想你一定感受到了ASP.NET的強大功能。以前在ASP中需要處理的許多復雜技術細節,在ASP.Net中竟然完全不用考慮,而且功能大大地增強。新技術只所以吸引我們,關鍵就在於:它使我們更加注重於內容的構思而不是技術的細節,從而更好地發揮人類的想像力與創造力。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved