`
pcajax
  • 浏览: 2096738 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用户控件事件使用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}

分享到:
评论

相关推荐

    VB.Net-C#多线程Thread-代理委托delegate编程

    C#多线程使用TextBox控件 .txt C#多线程注意点.txt Control的Invoke和BeginInvoke.txt Invoke和BeginInvoke的真正含义.txt NET异步调用模式.txt TreeView更新线程.txt url.txt VB.NET多线程——创建新线程.txt VB...

    C#与.NET技术平台实战演练.part2

    12-9-2 定义索引12-10 索引和数组的比较12-11 覆写Indexer12-12 Indexer与属性的比较12-12-1 Indexer与属性的相似性12-12-2Indexer与属性的不同点12-l3Indexer设计准则第13章操作数.Delegate事件13-1 覆写操作...

    C#与.NET技术平台实战演练.part1

    12-9-2 定义索引12-10 索引和数组的比较12-11 覆写Indexer12-12 Indexer与属性的比较12-12-1 Indexer与属性的相似性12-12-2Indexer与属性的不同点12-l3Indexer设计准则第13章操作数.Delegate事件13-1 覆写操作...

    C#面试总结绝对好用

    3、根据委托(delegate)的知识,请完成以下用户控件中代码片段的填写:(10) namespace test { public delegate void OnDBOperate(); public class UserControlBase : System.Windows.Forms.UserControl { ...

    asp.net知识库

    动态加载用户控件的组件!(终结MasterPages技术) 在ASP.NET 1.1下实现模板化站点的新思路 在ASP.Net中两种利用CSS实现多界面的方法 用于弹出ModalDialog进行数据选择的控件 使用.ashx文件处理IHttpHandler实现发送...

    一个可视化和控制音乐播放的iPhone视图控件

    该源码案例是一个可视化和控制音乐播放的iPhone视图控件,源码MusicPlayerViewController,MusicPlayerViewController是一个开源的iOS音乐播放组件,它的目标是成为一个嵌入的组件,通过复制音乐应用的用户界面为...

    HADropDown:下拉菜单的iOS控件

    使用IB或代码(使用UIView的init方法)创建HADropDown。 然后添加项目并设置一个委托: dropDown.items = [“ hello”,“再见”,“为什么?”] dropDown.delegate = self您还可以实现HADropDownDelegate来在选择...

    UIWebView的使用代码

    有用的控件,经常使用设置背景透明 设置webview的backgroundColor属性为[UIColor clearColor]; ? 1 webView.backgroundColor = [UIColor clearColor]; 为webview中的HTML页面的body标签添加CSS背景样式设置 ? ...

    【。net 专业】 面试题

    比如登陆可能在多个页面上有,就可以做成用户控件,但是有一个问题就是用户控件拖到不同级别的目录下后里面的图片等的相对路径会变得不准确,需要自已写方法调整. 3.什么叫应用程序域?什么是受管制的代码?什么是强...

    net学习笔记及其他代码应用

    26.根据委托(delegate)的知识,请完成以下用户控件中代码片段的填写: namespace test { public delegate void OnDBOperate(); public class UserControlBase : System.Windows.Forms.UserControl { public ...

    c#等待提示对话框,防止界面假死

    使用的时候把2个dll放到你的程序目录,在资源管理器引用LOADing.dll 就可以了,DevComponents.DotNetBar2.dll为确定按钮控件的引用 列子: private void dl_Click(object sender, EventArgs e) { LOADing.FORMshow ...

    代理类的小小应用

    该压缩包中的代码使用代理类实现了表格类控件的Item项展示和编辑的无缝连接,优化了用户的体验。

    C# for CSDN 乱七八糟的看不懂

    C#关键字 关键字 abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach ...

    科大讯飞的语音合成

    上传用户词表,使用示例如下: C/C++ Code //创建上传对象 _uploader = [[IFlyDataUploader alloc] init]; //生成用户词表对象 //用户词表 #define USERWORDS @"{\"userword\":[{\"name\":\"iflytek\",\"words\":...

    ios开发记录

    //超出这个view的边界的控件不再显示 [_infoView setClipsToBounds:YES]; //UIView 静态方法,开始一个动画 [UIView beginAnimations:nil context:nil]; begin 开始 //animation 动画 duration 间隔时间 ...

    百度地图 功能模块完整版 开发指南

    在delegate回调方法- (void)mapView:(BMKMapView *)mapView onDrawMapFrame:(BMKMapStatus *)status 中根据当前地图的状态进行绘制(具体参照demo)。 ----------------------------------------------------------...

    FTP服务器 C#

    // 处理客户端用户请求 private void UserProcessing(object obj) { User user = (User)obj; string sendString = "220 FTP Server v1.0"; RepleyCommandToUser(user, sendString); while (true) { string ...

    JBoss Seam 工作原理、seam和hibernate的范例、RESTFul的seam、seam-gen起步、seam组件、配置组件、jsf,jboss、标签、PDF、注解等等

    Seam - 语境相关的组件[满江红20071230]............................................................................................................................ 1 Java EE 框架...........................

Global site tag (gtag.js) - Google Analytics