zoukankan      html  css  js  c++  java
  • 给用户控件增加事件[转帖]

    意图是这样的:

    管理页面中,总会有一些新增啊,删除啊,修改啊之类的按钮,为了方便,我想做个用户控件;

    这个用户控件,里面有三个按钮,新增、修改、删除;这个用户控件要在多个页面上出现,当然,修改与删除的对像也不相同;所以,这个用户控件,在不同的页面中,这三个按钮会使用不同的事件;

    (如果只是加事件,直接双击按钮就可以加了)

    用户控件的代码
    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="topBar.ascx.cs" Inherits="webControl_topBar" %>
    <asp:Button ID="ButAdd" runat="server" Text="新增" OnClick="ButAdd_Click" />
    <asp:Button ID="ButMod" runat="server" Text="修改" OnClick="ButMod_Click" />
    <asp:Button ID="ButDel" runat="server" Text="删除" OnClick="ButDel_Click" />

    用户控件C#中的代码
    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;

    public partial class webControl_topBar : System.Web.UI.UserControl
    {
           //定义一个委托
           public delegate void userEvent(object sender, EventArgs arg);
           //
           public event userEvent Add;
           public event userEvent Delete;
           public event userEvent Modify;
           //
           protected void Page_Load(object sender, EventArgs e)
           {


           }

           #region 控件中按钮的事件
           protected void ButAdd_Click(object sender, EventArgs e)
           {
               if (this.Add != null)
                   this.Add(this, e);
           }
           protected void ButDel_Click(object sender, EventArgs e)
           {
               if (this.Delete != null)
                   this.Delete(this, e);
           }
           
           protected void ButMod_Click(object sender, EventArgs e)
           {
               if (this.Modify != null)
                   this.Modify(this, e);
           }
           #endregion
    }

    上面用到了事件与委托;利用用户控件中的按钮来触发自己定义的事件;

    那么,在aspx页面中引用这个控件时:
           <form id="form1" runat="server">
               <uc2:topBar id="TopBar1"      OnAdd="ButAdd_Click" OnDelete="ButDel_Click" OnModify="ButMod_Click" runat="server">
               </uc2:topBar>
           </form>

    当然不要忘记了页面头部的
    <%@ Register Src="webControl/topBar.ascx" TagName="topBar" TagPrefix="uc2" %>

    在这个aspx页面的C#文件中,有这样一些事件
           protected void ButAdd_Click(object sender, EventArgs e)
           {

               this.Response.Write(sender.GetType().ToString());
           }
           protected void ButDel_Click(object sender, EventArgs e)
           {

               this.Response.Write("删除");
           }
           protected void ButMod_Click(object sender, EventArgs e)
           {

               this.Response.Write("修改");
           }

    那么,在不同的aspx文档中,我就可以写不同的事件了;很简单吧;

    这样,我们还可以在用户控件中判断当前登录用户的权限,例如,如果没有删除权限,删除按钮就不出现;

    转自:http://hi.baidu.com/2hill/blog/item/6869060fe7d686296059f33c.html/cmtid/a2335e248bf59721d5074278

  • 相关阅读:
    java的继承---包装器与自动装箱
    linux开机启动过程,很多人说的不太清楚的看看。
    黑盒测试/三角形(OC)
    git 忽略一些文件的提交
    volley 框架的使用
    如何通过阿里百川的集成,以及manifest的权限配置完成淘客商品详情页的链接
    抓取网站访问者的QQ号码
    写写东西吧
    Android 强制实现下线功能
    Android 新闻显示界面且适应平板
  • 原文地址:https://www.cnblogs.com/liangwei389/p/1437283.html
Copyright © 2011-2022 走看看