ASP.NET 創(chuàng)建帶事件的用戶控件

字號(hào):


    ASP.NET 用戶控件的創(chuàng)建與使用----在這篇中講了用戶控件的創(chuàng)建與使用。
    下面說(shuō)下怎么創(chuàng)建帶事件的用戶控件:
    標(biāo)準(zhǔn)的WEB空間有事件,來(lái)進(jìn)行交互,同樣用戶控件也有。
    要?jiǎng)?chuàng)建一個(gè)帶事件的用戶控件很簡(jiǎn)單,只需要三步:
    1.定義個(gè)公開(kāi)的(public) 的事件委托,如ClickEventHandler
    2.在用戶控件類中定義引發(fā)事件的方法,如OnClick方法
    3.在引發(fā)事件的方法中判斷事件是否為空,如果不為空,就可以寫(xiě)事件出來(lái)代碼了。
    下面我們來(lái)一步一步實(shí)現(xiàn),
    1.創(chuàng)建一個(gè)用戶控件文件--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">點(diǎn)擊我</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控件,我們將要做當(dāng)點(diǎn)擊用戶控件的LinkButton,讓Lable顯示內(nèi)容。
    <asp:Label ID="Label1" runat="server"></asp:Label>
    7.在用戶控件中添加用戶控件事件句柄,
    <uc1:LinkClick ID="LinkClick1" runat="server" OnmyClickEventHandler="LinkClick1_OnClick"/>
    8.打開(kāi)文件,Default.aspx.cs ,在里面添加事件出來(lái)函數(shù)LinkClick1_OnClick的定義代碼。
    代碼如下,(當(dāng)用戶單擊控件LinkClick,則引發(fā)該事件,在Lablel控件中顯示相應(yīng)文字)。
    protected void LinkClick1_OnClick(object sender, EventArgs e)
    {
    this.Label1.Text = "單擊我";
    }
    這樣一個(gè)帶事件的用戶控件就好了。運(yùn)行試試。