[ASP.NET開發系列]在用戶控件中添加事件

在《在用戶控件中添加屬性》這一篇文章中我們演示瞭如何在用戶控件中添加屬性,接下來我們演示如何在用戶控件中添加事件。

在《在用戶控件中添加屬性》這一篇文章中我們定義了一個用戶登錄的用戶控件UserLogin.ascx 文件,裏面包含了一個LinkButton服務器按鈕控件,當用戶單擊該按鈕時服務器端會自動生成一個回發來激發Page.Load事件。除了服務器自動產生回發來激發Page.Load事件外,我們可以給LinkButton添加一個它自己的事件,添加事件其實也很簡單,通過在<script></script>塊中聲明事件,然後把該事件添加到用戶控件中。

我們現在通過以下的例子來說明如何在UserLogin.ascx用戶控件中添加事件。

UserLogin.ascx

<html>

<title>用戶登錄</title>

<body>

  <table>

    <tr>

      <td>用戶名:</td>

      <td><asp:TextBox ID=”txt1” runat=”server”></td>

    </tr>

<tr>

  <td>  碼:</td>

  <td><asp:TextBox ID=”txt2” TextMode=”password” runat=”server”></td>

</tr>

<hr>

<tr>

  <td></td>

  <td><asp:LinkButton Text=”登陸OnClick=”MyOnClick” runat=”server”></td>

</tr>

</table>

</body>

</html>

<script language=”C#” runat=”server”>

 public string UserName{

   get{return txt1.Text;}

   set{txt1.Text=value;}

}

 public string PassWord{

   get{return txt2.Text;}

   set{txt2.Text=value;}

}

public event Eventhandler Login; //添加事件句柄

void MyOnClick(Object Sender,EventArgs e){

  if(Login != null)

     Login(this,new EventArgs()); //激活Login事件

}

</script>

ASPX頁面中使用自定義事件:

<%@Register TagPrefix=”wen” TagName=”UserEvent” src=” UserLogin.ascx”%>

<html>

<body>

  <form runat=server>

   <wen:UserEvent ID=”MyLogin” OnLogin=”OnLoginPress” runat=”server”>

  </form>

  <asp:Label ID=”Lab1” runat=”server”/><br>

  <asp:Label ID=”Lab2” runat=”server”/><br>

</body>

</html>

<script Language=”C#” runat=”server”>

void OnLoginPress(Object Render, EventArgs e){

  Lab1.Text=MyLogin.UserName;

  Lab2.Text=MyLogin.PassWord;

}

</script>

發佈了159 篇原創文章 · 獲贊 3 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章