ASP.NET 用戶控件的創建與使用----在這篇中講了用戶控件的創建與使用。
下面說下怎麼創建帶事件的用戶控件:
標准的WEB空間有事件,來進行交互,同樣用戶控件也有。
要創建一個帶事件的用戶控件很簡單,只需要三步:
1.定義個公開的(public) 的事件委托,如ClickEventHandler
2.在用戶控件類中定義引發事件的方法,如OnClick方法
3.在引發事件的方法中判斷事件是否為空,如果不為空,就可以寫事件出來代碼了。
下面我們來一步一步實現,
1.創建一個用戶控件文件--LinkClick.ascx.
2.從工具箱中拖入LinkButton控件。
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="LinkClick.ascx.cs" Inherits="Sample9_2.UC.linkClick" %>
<asp:LinkButton ID="LinkButton1" runat="server" onclick="LinkButton1_Click">點擊我</asp:LinkButton>
3.在LinkClick.ascx.cs後置代碼中定義單擊事件的委托
public event EventHandler myClickEventHandler;
4.添加LinkButton控件的單擊事件代碼如下:
protected void LinkButton1_Click(object sender, EventArgs e)
{
if (myClickEventHandler != null) {
myClickEventHandler(this, EventArgs.Empty);
}
}
5.在Default.aspx,中拖入剛才的用戶控件
<uc1:LinkClick ID="LinkClick1" runat="server"/>
6.在工具箱中拖入Lable控件,我們將要做當點擊用戶控件的LinkButton,讓Lable顯示內容。
<asp:Label ID="Label1" runat="server"></asp:Label>
7.在用戶控件中添加用戶控件事件句柄,
<uc1:LinkClick ID="LinkClick1" runat="server" OnmyClickEventHandler="LinkClick1_OnClick"/>
8.打開文件,Default.aspx.cs ,在裡面添加事件出來函數LinkClick1_OnClick的定義代碼。
代碼如下,(當用戶單擊控件LinkClick,則引發該事件,在Lablel控件中顯示相應文字)。
protected void LinkClick1_OnClick(object sender, EventArgs e)
{
this.Label1.Text = "單擊我";
}
這樣一個帶事件的用戶控件就好了。運行試試。