用户控件事件使用delegate

用户控件事件使用delegate

1.在我们写一个用户控件时需要考虑到重用得问题,如果控件中包含按钮事件,

我们不可能将点击事件写到控件里,而是我们想吧事件处理得过程写在

调用控件的页面中,这是该怎么处理呢?

我的做法时使用delegate来实现这个功能!

具体做法如下:
下面是控件的html部分

 1<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ctlForm.ascx.cs" Inherits="ctlForm" %>
 2<table>
 3    <tr>
 4        <td style="width: 100px">
 5            name</td>
 6        <td style="width: 100px">
 7            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></td>
 8    </tr>
 9    <tr>
10        <td style="width: 100px">
11            sex</td>
12        <td style="width: 100px">
13            <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox></td>
14    </tr>
15    <tr>
16        <td style="width: 100px">
17        </td>
18        <td style="width: 100px">
19            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="测试" /></td>
20    </tr>
21</table>
22

控件的cs部分

 1using System;
 2using System.Data;
 3using System.Configuration;
 4using System.Collections;
 5using System.Web;
 6using System.Web.Security;
 7using System.Web.UI;
 8using System.Web.UI.WebControls;
 9using System.Web.UI.WebControls.WebParts;
10using System.Web.UI.HtmlControls;
11
12public partial class ctlForm : System.Web.UI.UserControl
13{
14    protected void Page_Load(object sender, EventArgs e)
15    {
16
17    }
18
19    public delegate void ClickHander();
20
21    public ClickHander MyClickHandler = null;
22
23    public void Button1_Click(object sender, EventArgs e)
24    {
25        if (MyClickHandler != null)
26        {
27            MyClickHandler();
28        }
29    }
30}
31

我们调用这个控件的页面写法如下:

 1<%@ Page Language="C#" AutoEventWireup="true" CodeFile="testForm.aspx.cs" Inherits="testForm" %>
 2
 3<%@ Register Src="ctlForm.ascx" TagName="ctlForm" TagPrefix="uc1" %>
 4
 5<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 6
 7<html xmlns="http://www.w3.org/1999/xhtml" >
 8<head runat="server">
 9    <title>无标题页</title>
10</head>
11<body>
12    <form id="form1" runat="server">
13    <div>
14        <uc1:ctlForm ID="CtlForm1" runat="server" />
15    
16    </div>
17    </form>
18</body>
19</html>
20

调用控件的cs代码如下

 1using System;
 2using System.Data;
 3using System.Configuration;
 4using System.Collections;
 5using System.Web;
 6using System.Web.Security;
 7using System.Web.UI;
 8using System.Web.UI.WebControls;
 9using System.Web.UI.WebControls.WebParts;
10using System.Web.UI.HtmlControls;
11
12public partial class testForm : System.Web.UI.Page
13{
14    protected void Page_Load(object sender, EventArgs e)
15    {
16        CtlForm1.MyClickHandler = new ctlForm.ClickHander(this.Test);
17    }
18
19    public void Test()
20    {
21        Response.Write("ok");
22    }
23
24    
25}

用户控件事件使用delegate相关推荐

  1. 在asp.net中为Web用户控件添加属性和事件

    在90年代初,Microsoft为Web程序员提供的 Active Server Pages(ASP)革命性地改变了Web的编程.它可以利用十分易用的模型在Web服务器上动态生成HTML,并且很容易的 ...

  2. 开发和使用Web用户控件

    在 ASP.NET 的开发中 Web 用户控件的开发和使用是一项必不可少的技术,在对这项技术的一番研究后写下了这篇随笔,不过确实担心这么初级的东东放到原创首页上会被拍砖头. 1.简介 2.创建 Web ...

  3. C# 在用户控件中添加自定义事件

    /// <summary> /// 用户控件 /// </summary> public partial class UCMyControl : UserControl {// ...

  4. ASP.NET 用户控件自定义属性、方法、事件

    原文件链接:http://www.cnblogs.com/stalwart/archive/2010/12/16/1908302.html 之前一直写MVC的,本来就不大喜欢.NET中的服务器控件,里 ...

  5. 关于从页面中获取用户控件中的其它控件(如DropDownList)事件的方法

    在项目中经常把一些经常使用的代码做成用户控件以提高代码的可重用性, 一个经常遇到的就是在页面中调用用户控件中的服务器控件的事件,下面给出简单的代码示列. 我们在一个用户控件(MaterialRepor ...

  6. 有效利用ASP.NET用户控件的事件委托

    当你在开发ASP.NET网站,对用户控件一定并不陌生.当多个页面都使用相同或相似的设计时,使用用户控件可以提高开发效率! 但往往你会因为用户控件有少许不同的要求而感觉到烦恼.比如说在开发后台处理页面的 ...

  7. 【转】页(page),用户控件(userControl),窗口(window)区别

    欢迎加入BIM行业开发交流1群 群号:711844216 背景 大家在vs中新建wpf项目后,会发现在添加新建项时会出现下列三个选项 它们有什么区别呢? 区别: 页:通常用于网页 窗口:通常一个桌面a ...

  8. aspx 页面,master页面与ascx用户控件传值的问题

    aspx 页面与ascx用户控件传值的问题 1.建立ascx控件 2.给ascx加上属性 3.将控件拖入aspx中 4.在aspx的代码中按控件ID访问属性 如: <uc3:left_Repas ...

  9. DevExpress 用户控件 分页(中)

    说明: 1)具体调用请关注 看DevExpress 用户控件 分页(下) datanavi_ButtonClick 是DataNavigator的ButtonClikc事件 视图设计器: 分页用户控件 ...

最新文章

  1. 软件工程与软件测试基础知识_这是我在软件工程工作九个月中学到的知识
  2. java的byte与C#的异同引起的字符处理问题。
  3. 杀戮时刻补丁(无限子弹,无限手雷)
  4. Win7 64位下PowerDesigner连接64位Oracle11g数据库
  5. 人生致命的八个经典问题
  6. 学成在线--2.CMS前端页面查询开发
  7. 经典测试用例--水杯测试
  8. 电子罗盘的工作原理及校准
  9. Kali-DDoS工具集合
  10. 节假日判断工具(Java)
  11. linux内核是如何实现分页机制的
  12. 天荒地老修仙功-第六部第二篇:Spring Cloud Eureka自我保护机制
  13. 刨根问底-AQS源码解析
  14. 学习人工智能需要哪些必备基础
  15. 计算机组装与维护手写笔记,科学网—计算机技术的简单小结 - 熊伟的博文
  16. 一点点对WebResource.axd的配置及使用[原创]
  17. 多单、空单、开仓、平仓、持仓、现货、期货、通货膨胀.......
  18. 电梯监控系统的服务器,电梯物联网及远程实时监控系统方案-20210712141708.docx-原创力文档...
  19. linux课后作业答案第六章,操作系统 第六章作业习题解答
  20. 计算机网络应用层详解

热门文章

  1. 树形结构 —— 树与二叉树 —— 树的重心
  2. 理论基础 —— 索引 —— B 树、B+ 树与 B* 树
  3. Apocalypse Someday(POJ-3208)
  4. 41 FI配置-财务会计-固定资产-组织结构-定义资产分类
  5. js 删除服务器文件,Node.js复制/删除服务器端文件到指定目录文件夹下,并且预判是否存在该目录,如果没有,则递归创建该文件夹目录...
  6. oracle的in集合,oracle中in与not in集合中有空值问题
  7. python中lambda的使用
  8. OpenGL:关于获取渲染结果的深度信息的问题(二)
  9. C++/OpenGL:图像指针操作
  10. 开启防火墙并添加出入站规则