熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

Asp.net 用戶控件添加自定義事件

2013-11-13 09:55:33  來源: .NET編程 
    對於用戶控件的使用有這樣的特點就是當我們要求一個用戶控件要實現特定的功能的時候他可以在整個網站裡面的頁面上任意拖拽但是他的功能相對固定也就是說在ascx文件中的代碼是寫死的一旦要實現其他功能就要將整個用戶控件重做這裡介紹一種方法要用戶控件的可重復使用性更強
   
    前台代碼
   
    就是一個簡單的登錄控件
   
    <%@ Control Language=C# AutoEventWireup=true CodeFile=LoginControlascxcs Inherits=LoginControl %>
   
    <table border=>
   
    <tr>
   
    <td colspan= >
   
    <strong>用戶登錄</strong></td>
   
    </tr>
   
    <tr>
   
    <td >
   
    用戶名</td>
   
    <td colspan=>
   
    <asp:TextBox ID=txtName runat=server ValidationGroup=group></asp:TextBox></td>
   
    </tr>
   
    <tr>
   
    <td >
   
    密碼</td>
   
    <td colspan= >
   
    <asp:TextBox ID=txtPassword runat=server TextMode=Password></asp:TextBox></td>
   
    </tr>
   
    <tr>
   
    <td colspan= >
   
    <asp:RequiredFieldValidator ID=RequiredFieldValidator runat=server ControlToValidate=txtName
   
    ErrorMessage=用戶名為必填項 ValidationGroup=group></asp:RequiredFieldValidator></td>
   
    </tr>
   
    <tr>
   
    <td >
   
    <asp:Button ID=Button runat=server Text=Button /></td>
   
    <td >
   
    <asp:Button ID=Button runat=server OnClick=Button_Click Text=登錄 ValidationGroup=group
   
    Width=px /></td>
   
    <td >
   
    <asp:Button ID=Button runat=server Text=登出 Width=px /></td>
   
    </tr>
   
    </table>
   


    用戶控件後台代碼
   
    public event EventHandler Authenticate;
   
    protected void Page_Load(object sender EventArgs e)
   
    {
   
    }
   
    public void Button_Click(object sender EventArgs e)
   
    {
   
    if (Authenticate!=null)
   
    {
   
    Authenticate(this new EventArgs())//如果用戶自定義添加了事件則該button會按指定的事件進行而不會走默認事件相反會執行默認事件
   
    }
   
    else
   
    {
   
    string connectString = Server= ; DataBase=Test ; uid=sa ; pwd=cosecose ;
   
    string selectString = Select * from userInfo where Name= + txtNameTextToString() + and Password= + txtPasswordTextToString() + ;
   
    SqlConnection conn = new SqlConnection(connectString)
   
    connOpen()
   
    SqlCommand cmd = new SqlCommand(selectString conn)
   
    SqlDataAdapter sda = new SqlDataAdapter()
   
    sdaSelectCommand = cmd;
   
    DataTable dt = new DataTable()
   
    sdaFill(dt)
   
    if (dtRowsCount ==
   
    {
   
    ResponseWrite(<script>windowalert(密碼或用戶名輸入錯誤!)</script>
   
    }
   
    else
   
    {
   
    ResponseWrite(<script>windowalert(恭喜您登錄成功!)</script>
   
    }
   
    connClose()
   
    }
   
    }
   
    主頁面代碼
   
    protected void Page_Load(object sender EventArgs e)
   
    {
   
    Button btn =(Button)LoginControlFindControl(Button
   
    btnClick += new EventHandler(Show)
   
    //提供第一種方法通過findcontrol方法找到控件然後對控件的事件進行添加
   
    LoginControlAuthenticate += new EventHandler(Show)
   
    //提供第二種方法直接綁定上自己的定義事件
   
    }
   
    protected void Show(object sender EventArgs e)
   
    {
   
    FormsAuthenticationSignOut()
   
    ResponseWrite(<script>windowalert(用戶已經成功退出!)</script>


From:http://tw.wingwit.com/Article/program/net/201311/11995.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.