麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

ASP.NET用戶控件事件的定義和實(shí)踐

2019-11-14 16:36:47
字體:
供稿:網(wǎng)友

假定用戶控件(UserControl.ascx)中包含按鈕控件  AButton,希望實(shí)現(xiàn)按  Button  按鈕時,包含該用戶控件的頁面可以接收到事件。

UserControl.ascx.cs  中的處理: 
1. 定義  public  的事件委托,如  ClickEventHandler; 
2. 在  UserControl  類中聲明事件,如  Click; 
3. 在  UserControl  類中定義引發(fā)事件的方法,如  OnClick()方法; 
4. 在  UserControl  類的相關(guān)方法中調(diào)用引發(fā)事件的方法,如在  Button_Click()中調(diào)用  OnClick()。

 下面這個例子是簡單的響應(yīng)點(diǎn)擊事件

demo:buttonlist.aspx.cs

using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

namespace stoneControls
{
    public delegate void ClickEventHandler(object sender, EventArgs e);
    public partial class buttonList : System.Web.UI.UserControl
    {
        public event ClickEventHandler Click;
        PRotected void OnClick(EventArgs e)
        {
            if (Click != null)
                Click(this, e);
        }

        protected void lbnHome_OnClick(object sender, EventArgs e)
        {
            this.OnClick(e);
        }
    }
}

demo:buttonlist.aspx

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="buttonList.ascx.cs" Inherits="stoneControls.buttonList" %>
<table>
<tr>
   <td><asp:LinkButton ID="lbnHome" runat="Server" CommandName="HOME" Text="首頁" OnClick="lbnHome_OnClick"></asp:LinkButton></td>
  </tr>
</table>

使用  ascx  控件

sample:buutonListTest .aspx

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>無標(biāo)題頁</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <uc1:buttonList ID="ButtonList1" runat="server" >    
    </div>
    </form>
</body>
</html>

sample:buutonListTest .aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

namespace stoneControls
{
    public partial class buutonListTest : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            this.ButtonList1.Click+=new ClickEventHandler(ButtonList1_Click);
        }

        protected void ButtonList1_Click(object sender, EventArgs e)
        {

            Response.Write("AAAAAAAAAAAAAAAAAAAAAA");
        }
    }
}

我們進(jìn)一步的構(gòu)造一個帶數(shù)據(jù)參數(shù)的事件,利用.net  自帶的  commandeventargs,當(dāng)然可以自己構(gòu)造一個,去繼承  eventargs  就行了。

將上面的委托和事件改改,如下 :

public delegate void ClickCmandHandler(object sender,CommandEventArgs e);

    public partial class buttonList : System.Web.UI.UserControl
    {
        public event ClickCmandHandler Click;
        protected void OnClick(CommandEventArgs e)
        {
            if (Click != null)
                Click(this, e);
        }

        protected void lbnHome_OnClick(object sender,CommandEventArgs e)
        {
            this.OnClick(e);
        }
    }

頁面的文件也相應(yīng)做下修改:

  <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="buttonList.ascx.cs" Inherits="stoneControls.buttonList" %>
<table>
<tr>
   <td>
   <asp:LinkButton ID="lbnHome" runat="Server" CommandName="HOME" Text="首頁" OnCommand="lbnHome_OnClick">
   </asp:LinkButton>   
   </td>
   <td>
   <asp:LinkButton ID="lbnChannel" runat="Server" CommandName="CHANNEL" Text="頻道" OnCommand="lbnHome_OnClick">
   </asp:LinkButton>   
   </td>
   <td>
   <asp:LinkButton ID="lbnColumn" runat="Server" CommandName="COLUMN" Text="欄目" OnCommand="lbnHome_OnClick">
   </asp:LinkButton>   
   </td>
   <td>
   <asp:LinkButton ID="lbnSoft" runat="Server" CommandName="DETAILS" Text="明細(xì)" OnCommand="lbnHome_OnClick">
   </asp:LinkButton>   
   </td>
  </tr>
</table>

調(diào)用控件改動下注冊的參數(shù)就可以了。。

    protected void Page_Load(object sender, EventArgs e)
        {
            this.ButtonList1.Click+=new ClickCmandHandler(ButtonList1_Click);
        }

        protected void ButtonList1_Click(object sender,CommandEventArgs e)
        {
            if (e.CommandName == "DETAILS")
            {
            }
            if (e.CommandName == "COLUMN")
            {
            }
            if (e.CommandName == "CHANNEL")
            {
            }
            if (e.CommandName == "HOME")
            {
            }
        }

這樣子一個簡單的頁面導(dǎo)航的控件基本出來,根據(jù)在  commandname  的不同跳轉(zhuǎn)!!


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 成人毛片在线 | 欧美.com| 国产免费高清在线视频 | 亚洲特黄 | 一级视频在线播放 | 久草在线播放视频 | 国产91小视频在线观看 | 国产亚洲精品久久久久久大师 | 九九午夜 | 欧美日韩国产成人在线观看 | 宅男视频在线观看免费 | 亚洲一二区视频 | 国产精品久久久久久久久久东京 | 特大黑人videos与另类娇小 | 爱视频福利| 国产一级www | 黄色av免费网站 | 久久成人国产精品入口 | 最新一区二区三区 | 91精品国产777在线观看 | 久久国产精 | 成码无人av片在线观看网站 | 午夜视频在线观看免费视频 | 久久里面有精品 | 欧美日韩一 | 成人毛片视频免费 | 日本a大片 | 国产在线精品一区二区三区 | 男女无套免费视频 | 中文在线日韩 | 一级电影免费 | 欧美18videos性处按摩 | 国产精品久久久久久久久久 | 毛片免费在线视频 | 龙床上的呻吟高h | 久在线观看福利视频69 | 中文字幕专区高清在线观看 | 欧美成人视 | 久草高清视频 | 国产一区二区三区四区五区加勒比 | 91午夜少妇三级全黄 |