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

ASP.NET用戶控件操作ASPX頁面

2013-11-13 10:32:45  來源: .NET編程 

  簡單實例

  先來個簡單點的首先新建一個 web用戶控件WebUserControlascx

  在頁面上添加一個按鈕並響應Click事件

  [csharp] <asp:Button ID=Button runat=server Text=在頁面級的TextBox輸入一個隨機數 onclick=Button_Click /> 
<asp:Button ID=Button runat=server Text=在頁面級的TextBox輸入一個隨機數 onclick=Button_Click />

  然後編寫後台代碼

  [csharp] //定義一個不含數據的事件處理方法  
public event EventHandler Click; 
 
protected void Button_Click(object sender EventArgs e) 

    Click(this EventArgsEmpty);             

        //定義一個不含數據的事件處理方法
        public event EventHandler Click;

  protected void Button_Click(object sender EventArgs e)
        {
            Click(this EventArgsEmpty);           
        }

  好了用戶控件我們就算完成了現在新建一個WebFormaspx頁面在頁面上添加一個Textbox並把用戶控件添加到該頁面

  [html] <%@ Register src=WebUserControlascx tagname=WebUserControl tagprefix=uc %> 
<!DOCTYPE html PUBLIC //WC//DTD XHTML Transitional//EN transitionaldtd
<html xmlns=
<head runat=server
    <title></title> 
</head> 
<body> 
    <form id=form runat=server
    <div>     
        <asp:TextBox ID=TextBox runat=server></asp:TextBox> 
        <br /> 
        <uc:WebUserControl ID=WebUserControl runat=server />     
    </div> 
    </form> 
</body> 
</html> 
<%@ Register src=WebUserControlascx tagname=WebUserControl tagprefix=uc %>
<!DOCTYPE html PUBLIC //WC//DTD XHTML Transitional//EN transitionaldtd>
<html xmlns= >
<head runat=server>
    <title></title>
</head>
<body>
    <form id=form runat=server>
    <div>   
        <asp:TextBox ID=TextBox runat=server></asp:TextBox>
        <br />
        <uc:WebUserControl ID=WebUserControl runat=server />   
    </div>
    </form>
</body>
</html>

  然後我們在後台對用戶控件的事件添加一個函數響應代碼如下

  [csharp] protected void Page_Load(object sender EventArgs e) 

     WebUserControlClick += new EventHandler(WebUserControl_Click);             

 
void WebUserControl_Click(object sender EventArgs e) 

   TextBoxText =  new Random()Next( )ToString(); 

        protected void Page_Load(object sender EventArgs e)
        {
             WebUserControlClick += new EventHandler(WebUserControl_Click);           
        }

  void WebUserControl_Click(object sender EventArgs e)
        {
           TextBoxText =  new Random()Next( )ToString();
        }

  到這我們的示例就完成了我們在aspx可以捕捉到用戶控件的事件做我們想做的事情了

  \

  帶有事件數據的示例

  當然有時候我們不僅想要在aspx頁面捕捉到事件還希望能獲取到一些參數這時候EventArgs就需要出場了

  首先新建一個web用戶控件WebUserControlascx

  在頁面上添加兩個按鈕分別響應Click事件如下

  [html] <asp:Button ID=Button runat=server Text=修改頁面標題為編輯  
    onclick=Button_Click /> 
<asp:Button ID=Button runat=server Text=修改頁面標題為新增  
    onclick=Button_Click /> 
<asp:Button ID=Button runat=server Text=修改頁面標題為編輯
    onclick=Button_Click />
<asp:Button ID=Button runat=server Text=修改頁面標題為新增
    onclick=Button_Click />

  C#代碼首先添加一個類ChangePageTitleEventArgs用來傳遞事件數據代碼如下

  [csharp] public class ChangePageTitleEventArgs : EventArgs 

    public ChangePageTitleEventArgs(string title) 
    { 
        thisTitle = title; 
    } 
 
    public string Title 
    { 
        get; 
        private set; 
    } 
 

    public class ChangePageTitleEventArgs : EventArgs
    {
        public ChangePageTitleEventArgs(string title)
        {
            thisTitle = title;
        }

  public string Title
        {
            get;
            private set;
        }

  }

  然後我們來編寫用戶控件的後台代碼

  [csharp] public event EventHandler<ChangePageTitleEventArgs> ChangePageTitle; 
 
protected void Button_Click(object sender EventArgs e) 

    ChangePageTitle(thisnew ChangePageTitleEventArgs(編輯)); 

 
protected void Button_Click(object sender EventArgs e) 

    ChangePageTitle(this new ChangePageTitleEventArgs(新增)); 

        public event EventHandler<ChangePageTitleEventArgs> ChangePageTitle;

  protected void Button_Click(object sender EventArgs e)
        {
            ChangePageTitle(thisnew ChangePageTitleEventArgs(編輯));
        }

  protected void Button_Click(object sender EventArgs e)
        {
            ChangePageTitle(this new ChangePageTitleEventArgs(新增));
        }

  用戶控件的代碼就OK了然後我們新建一個WebFormaspx頁面將用戶控件添加到該頁面

  [csharp] <%@ Register src=WebUserControlascx tagname=WebUserControl tagprefix=uc %> 
<!DOCTYPE html PUBLIC //WC//DTD XHTML Transitional//EN transitionaldtd
<html xmlns=
<head runat=server
    <title></title> 
</head> 
<body> 
    <form id=form runat=server>     
        <uc:WebUserControl ID=WebUserControl runat=server /> 
    </form> 
</body> 
</html> 
<%@ Register src=WebUserControlascx tagname=WebUserControl tagprefix=uc %>
<!DOCTYPE html PUBLIC //WC//DTD XHTML Transitional//EN transitionaldtd>
<html xmlns= >
<head runat=server>
    <title></title>
</head>
<body>
    <form id=form runat=server>   
        <uc:WebUserControl ID=WebUserControl runat=server />
    </form>
</body>
</html>

  編寫後台代碼對用戶控件的時間添加處理函數

  [csharp] protected void Page_Load(object sender EventArgs e) 

    WebUserControlChangePageTitle += new EventHandler<ChangePageTitleEventArgs>(WebUserControl_ChangePageTitle); 

 
void WebUserControl_ChangePageTitle(object sender ChangePageTitleEventArgs e) 

    thisPageTitle = eTitle; 

        protected void Page_Load(object sender EventArgs e)
        {
            WebUserControlChangePageTitle += new EventHandler<ChangePageTitleEventArgs>(WebUserControl_ChangePageTitle);
        }

  void WebUserControl_ChangePageTitle(object sender ChangePageTitleEventArgs e)
        {
            thisPageTitle = eTitle;
        }

  好了很簡單的我們就完成了代碼運行測試一下效果如下

  \


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