本文的示例是一个登陆窗口 主要组成 一个用户控件(存放登陆所用的控件) 一个登陆页面(放置上面的用户控件) 用户控件的HTML代码为 <%@ Control Language=C# AutoEventWireup=true CodeBehind=LoginCtrlascxcs Inherits=CNLanPeiESPlusPAMSWebAppHomeUserCtrlsLoginCtrl %> <table border= cellpadding= cellspacing=> <tr> <td align=right valign=middle >用户名 </td> <td align=left valign=bottom> <asp:TextBox ID=txtUserName runat=server Width=px></asp:TextBox> </td> <td rowspan= align=right valign=middle> <asp:ImageButton SkinID=LoginImageBtn ID=ImageBtnLogin runat=server/> </td> </tr> <tr > <td colspan=></td> </tr> <tr> <td align=right valign=middle >密码 </td> <td align=left valign=top > <asp:TextBox ID=txtUserPwd runat=server Width=px TextMode=Password></asp:TextBox> </td> </tr> </table> 下面就是用户控件的CS代码里面就是事件存取器的使用 using System; using SystemWebUI; namespace CNLanPeiESPlusPAMSWebAppHomeUserCtrls { /// <summary> /// 登录控件 /// </summary> public partial class LoginCtrl : SystemWebUIUserControl { /// <summary> /// 获取用户名 /// </summary> public string UserName { get { return thistxtUserNameTextTrim(); } } /// <summary> /// 获取用户密码 /// </summary> public string UserPwd { get { return thistxtUserPwdTextTrim(); } } // 登录事件关键字 private static readonly string loginEvent = _LoginEvent; /// <summary> /// 添加或移除登录事件 /// </summary> public event EventHandler LoginEvent { add { thisEventsAddHandler(loginEvent value); } remove { thisEventsRemoveHandler(loginEvent value); } } /// <summary> /// 控件初始化函数 /// </summary> /// <param name=e></param> protected override void OnInit(EventArgs e) { baseOnInit(e); thisImageBtnLoginClick += new ImageClickEventHandler(ImageBtnLogin_Click); } /// <summary> /// 登录按钮点击事件 /// </summary> /// <param name=sender></param> /// <param name=e></param> private void ImageBtnLogin_Click(object sender ImageClickEventArgs e) { EventHandler handler = thisEvents[loginEvent] as EventHandler; if (handler != null) { handler(this e); } } } } 然后把这个用户控件拖到页面中相应的位置上页面的HTML代码就不贴了让我们看看我们应该如何使用添加进来的事件 using System; using CNLanPeiESPlusPAMSServiceFacadeInternalService; namespace CNLanPeiESPlusPAMSWebAppHome { /// <summary> /// 用户登录页面 /// </summary> public partial class Login : SystemWebUIPage { /// <summary> /// 页面初始化函数 /// </summary> /// <param name=e></param> protected override void OnInit(EventArgs e) { baseOnInit(e); thisLoginCtrlLoginEvent +=new EventHandler(LoginCtrl_LoginEvent); } /// <summary> /// 登录控件的登录事件 /// </summary> /// <param name=sender></param> /// <param name=e></param> private void LoginCtrl_LoginEvent(object sender EventArgs e) { string userName = thisLoginCtrlUserName; string userPwd = thisLoginCtrlUserPwd; // 用户登录 if((new Visitor())Login(userNameuserPwd)) { ResponseRedirect(Main/SuperAdmin/Defaultaspxtrue); } } } } 好了这就是它的使用方法 |