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