::細細品味ASP.NET (二):: (轉)

worldblog發表於2007-12-07
::細細品味ASP.NET (二):: (轉)[@more@]

細細品味 (二)


青蘋果工作室(編譯) 01-5-17 下午 01:33:55


表單 ? Web Forms就是Web頁面,同現在你用 ASP編寫程式碼所做的工作是一樣的。但是還不僅僅如此,ASP.NET Web Forms是在一個面向的模型上設計的,這樣程式碼就能夠再利用,並且使應用程式碼與頁面內容分隔開。在中,你將一個拖曳到一個表單上,然後其下的事件程式。在傳統的 ASP中,這是不可能的,因為在介面控制元件和它們的端程式碼之間沒有連結存在。但是在ASP.NET中,這樣的一個連結是存在的。所以,你可以編寫下面表1所示的程式碼,而不用手動從變數表中拖出值: 表1 簡單ASP.NET Web Form例程
Sub SubmitButton_Click( As , E As EventArgs) Response.Write (ÒYou entered Ò & Name.text) End Sub
Name:
在表1中有兩點值得注意。第一是在表單上 runat=“server” 屬性和 asp:textbox控制元件的使用,這可以告訴 ASP.NET 伺服器和客戶都可以使用這些控制元件。如此使用的控制元件叫做伺服器控制元件。asp: 用做控制元件名的字首,它本身就識別了控制元件是從哪來的。稍後我將討論這一點。第二個需要注意的細節是OnClick事件。開發 程式碼時,你經常要用到 OnClick事件,這是為了在中啟用一個事件。因為為控制元件設定了runat=“server” 屬性,所以事件只在伺服器上被啟用。要對這個例子進行擴充套件,可以去掉 Response.Write,然後用一個基於伺服器的控制元件來代替它,比如下面的表2程式碼: 表2 使用基於伺服器的控制元件
Sub SubmitButton_Click(Source As Object, E As EventArgs) YouEntered.Text = ÒYou entered Ò & txtName.text End Sub
Name:

這個程式碼執行相當好,很象一個傳統的客戶或Visual Basic表單,程式碼也直觀多了。你可以用伺服器控制元件來連線事件過程和基於伺服器的程式碼。這些基於伺服器的控制元件向瀏覽器傳送純 HTML內容,其中不再含有客戶端指令碼。實際上,這其中一個重要的設計目的就是要堅持使用固有的 HTML 3.2元素程式碼以提供最大可能的瀏覽器相容性。比如說,表2中的程式碼生成了以下HTML:
Name:

生成的程式碼是符合 HTML 3.2標準的。它執行一個標準投遞,將使用者輸入傳送回同一個。這裡沒有對伺服器狀態進行維護,也沒有客戶端指令碼對狀態進行維護。隱含的域執行對控制元件狀態的維護,這意味著在頁面的“提交-返回”之間,控制元件能自動恢復狀態,而不需要任何程式設計干預。雖然 ASP.NET Web控制元件的預設輸出是符合HTML 3.2標準的內容,但是對於更高階的瀏覽器如 Internet Explorer 5.0,也可以輸出為DHTML格式。這樣你就能只使用一套伺服器控制元件來編寫頁面,允許控制元件根據瀏覽器決定傳送哪種型別的輸出,從而允許你將傳送 DHTML的控制元件和客戶端指令碼用到最新版本的Internet Explorer中,將純 HTML 3.2內容傳送到其它瀏覽器中。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-989400/,如需轉載,請註明出處,否則將追究法律責任。

相關文章