ASP.NET立即上手教程(7)_.Net教程
推薦:ASP.NET立即上手教程(8)Asp.net引入了一種新的聲明數據綁定的語法。這種極其靈活的語法允許開發者不僅綁定數據源,而且可以綁定簡單的屬性、集合、表達式、甚至是調用方法所返回的結果。下面的列表顯示了這種新語法的
Web Forms 用戶控件
用戶控件介紹
除了ASP.NET提供的內建的服務器控件外,你還可以使用已經掌握的制作WEB FORMS 頁面的技術,輕松的定義自己的控件。實際上,只需要稍微改動一下,幾乎任何WEB FORMS頁面都可以作為服務器控件,在其他頁面上重復使用。(注意用戶控件的類型是System.Web.UI.UserControl, 它直接從System.Web.UI.Control繼承而來)。 Web Forms 頁面被作為服務器控件使用的時候,簡稱為用戶控件。轉變之后,通常使用.ascx擴展名來表明用戶控件。這就保證了用戶控件文件不能作為一個單獨的web form頁面來執行(你可以明白,在用戶控件和web forms 頁面之間,有一點,但是很重要的區別)。用戶控件使用Register(注冊)指令包含在Web Forms 頁面中:
<%@ Register TagPrefix="Acme" TagName="Message" Src="pagelet1.ascx" %>
TagPrefix 為用戶控件確定了唯一的名稱空間。(這樣,具有相同名字的多個用戶控件可以互相區分). TagName 的值是用戶控件的唯一名稱(你可以使用任何名字)。 Src 屬性是用戶控件的虛擬路徑—例如"MyPagelet.ascx" 或者 "/MyApp/Include/MyPagelet.ascx"。 注冊用戶控件之后,你可以在web forms頁面中放置用戶控件標簽,就像是用平常的服務器控件一樣(包含runat="server" 屬性):
<Acme:Message runat="server"/>
下面的例子展示了web forms頁面引入用戶控件的情況。本例中的用戶控件僅僅是一個簡單的靜態文件。
擴展用戶控件的屬性
當web forms頁面作為用戶控件處理的時候,web forms頁面的公共字段和方法升級為公共屬性(即標簽屬性)和公共方法(標簽的方法)。下面的例子將上一個例子中的用戶控件進行延伸,增加了兩個公共 String字段。注意這兩個字段既可以在包含頁中直接聲明,也可以用程序來控制。
除了將公共字段升級為控件屬性外,也可以使用屬性語法。 使用屬性語法勝過為了設定或者取得屬性值而執行代碼。下面的例子示范了一個Address 用戶控件,他綁定了TextBox 控件的text 屬性。這樣做的好處在于該控件“免費”繼承了TextBox 控件的自動狀態管理。注意在包含web forms頁面中有兩個Address 用戶控件,分別為"Billing Address" 和 "Shipping Address" 設置Caption 屬性。用戶控件的真正強大之處就是這種重復利用。
用戶控件的另一個有用之處是 Login 控件,用來收集用戶名和密碼。
在這個例子中,服務器驗證控件添加到了Login用戶控件中
在用戶控件中封裝事件
如同普通的服務器控件一樣,用戶控件參與整個請求執行的生命周期。這就意味著,用戶控件能夠操作自己的事件,從包含web forms頁中封裝某些頁面邏輯。
下面的例子演示了一個產品列表用戶控件,它在內部處理了自己的提交返回。注意用戶控件自身沒有綁定<form runat="server">控件。因為只有一個表單控件出現在頁面上(asp.net不允許嵌套服務器表單),于是留給包含web forms 頁面去定義他。
用程序創建用戶控件
如同普通服務器控件可以用程序創建一樣,用戶控件也一樣。頁面的LoadControl方法用來載入用戶控件,同時將虛擬路徑傳遞給用戶控件的源文件所在。
Control c1 = LoadControl("pagelet7.ascx");
((Pagelet7CS)c1).Category = "business";
Page.Controls.Add(c1);
用戶控件的類型是由Control 命令的ClassName 屬性所決定。例如下面的例子,一個文件名保存為"pagelet7.ascx"的用戶控件被賦值為"Pagelet7CS" 強類型:
<%@ Control ClassName="Pagelet7CS" %>
因為LoadControl 方法返回的類型是System.Web.UI.Control, 所以為了設置用戶控件的個別屬性,它必須拋出適當的強類型。最終,用戶控件加入到基本頁面的ControlCollection 集合中。
重要提示 對于包含用戶控件的web forms 頁面,只有當Register 命令包含了用戶控件(即使沒有用戶控件標簽被實際聲明),用戶控件的強類型才是可利用的。
本章小結
1、用戶控件允許開發者使用創建web forms頁面所使用的程序設計技術,輕松的創建自定義控件。
2、作為與普通頁面的區別,使用.ascx 文件擴展名來表明用戶控件。這就保證了用戶控件不能像標準web forms頁面那樣執行。
3、使用Register 命令,將用戶控件包含在web forms頁面中。Register 命令指定了TagPrefix, TagName, 和Src location。
4、注冊了用戶控件之后,就可以像對待普通服務器控件那樣,使用用戶控件(包含runat="server" 屬性)。
5、用戶控件被包含在web forms 頁面中以后,他的公共字段、屬性和方法升級為控件的公共屬性(標簽屬性)和方法。
6、用戶控件參與每個客戶端請求的整個生命周期,并且處理自身的事件,封裝了部分包含他的web forms頁面的頁面邏輯。
7、用戶控件不能包含任何form控件。如果需要的話,可以在包含他的web form頁面中使用form控件。
8、用戶控件可以用System.Web.UI.Page類的LoadControl方法用用程序來創建。用戶控件的類型由Control 命令的ClassName 屬性所決定。
9、對于包含用戶控件的web forms 頁面,只有當Register 命令包含了用戶控件(即使沒有用戶控件標簽被實際聲明),用戶控件的強類型才是可利用的。
分享:ASP.NET立即上手教程(6)表單驗證服務器控件 驗證介紹 網絡形成框架包括一套易用而功能強大的用于驗證的服務器控件,用來檢查輸入表單的錯誤,并且在必要的時候,向用戶顯示提示信息。將驗證控件添加到設計圈套表格
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發送Email實例(可帶附件)
- js實現廣告漂浮效果的小例子
- asp.net Repeater 數據綁定的具體實現
- Asp.Net 無刷新文件上傳并顯示進度條的實現方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報表的使用方法
- ASP.NET中操作SQL數據庫(連接字符串的配置及獲取)
- asp.net頁面傳值測試實例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲過程實現分頁示例代碼
- 相關鏈接:
- 教程說明:
.Net教程-ASP.NET立即上手教程(7)。