[ASP.NET 开发系列 ] 在用户控件中添加事件
作者:tigerwen01
在《在用户控件中添加属性》这一篇文章中我们演示了如何在用户控件中添加属性,接下来我们演示如何在用户控件中添加事件。
在《在用户控件中添加属性》这一篇文章中我们定义了一个用户登录的用户控件 UserLogin.ascx 文件,里面包含了一个 LinkButton 服务器按钮控件,当用户单击该按钮时服务器端会自动生成一个回发来激发 Page.Load 事件。除了服务器自动产生回发来激发 Page.Load 事件外,我们可以给 LinkButton 添加一个它自己的事件,添加事件其实也很简单,通过在
1<script></script>
块中声明事件,然后把该事件添加到用户控件中。
我们现在通过以下的例子来说明如何在 UserLogin.ascx 用户控件中添加事件。
UserLogin.ascx
1<html>
2<title> 用户登录 </title>
3<body>
4<table>
5<tr>
6<td> 用户名: </td>
7<td><asp:textbox id="”txt1”" runat="”server”"></asp:textbox></td>
8</tr>
9<tr>
10<td> 密 码: </td>
11<td><asp:textbox id="”txt2”" runat="”server”" textmode="”password”"></asp:textbox></td>
12</tr>
13<hr/>
14<tr>
15<td></td>
16<td><asp:linkbutton onclick="”MyOnClick”" runat="”server”" text="”" ”="" 登陆=""></asp:linkbutton></td>
17</tr>
18</table>
19</body>
20</html>
1<script language="”C#”" runat="”server”">
2
3public string UserName{
4
5get{return txt1.Text;}
6
7set{txt1.Text=value;}
8
9}
10
11public string PassWord{
12
13get{return txt2.Text;}
14
15set{txt2.Text=value;}
16
17}
18
19public event Eventhandler Login; // 添加事件句柄
20
21void MyOnClick(Object Sender,EventArgs e){
22
23if(Login != null)
24
25Login(this,new EventArgs()); // 激活 Login 事件
26
27}
28
29</script>
在 ASPX 页面中使用自定义事件:
1@Register TagPrefix=”wen” TagName=”UserEvent” src=” UserLogin.ascx”
1<html>
2<body>
3<form runat="server">
4<wen:userevent id="”MyLogin”" onlogin="”OnLoginPress”" runat="”server”">
5</wen:userevent></form>
6<asp:label id="”Lab1”" runat="”server”/"><br/>
7<asp:label id="”Lab2”" runat="”server”/"><br/>
8</asp:label></asp:label></body>
9</html>
1<script language="”C#”" runat="”server”">
2
3void OnLoginPress(Object Render, EventArgs e){
4
5Lab1.Text=MyLogin.UserName;
6
7Lab2.Text=MyLogin.PassWord;
8
9}
10
11</script>
说明:这里的 OnLogin 事件是我们给用户控件 UserLogin.ascx 文件添加的事件。