WebForm 用户控件 委托 实现 textbox后台赋值 调用端处理实现 textchange

新建一个简单的用户控件,如下图所示 textbox只读,button按钮模拟实现一堆业务逻辑后对textbox赋值。

用户控件后台代码也很简单

 public partial class UTTControl : System.Web.UI.UserControl
    {

        public delegate void CompanychangedDelegate();
        public event CompanychangedDelegate companychange;

        protected void Page_Load(object sender, EventArgs e)
        {

        }

        public string CompanyName
        {
            get { return tbxInput.Text; }
            set
            {
                if (!tbxInput.Text.Equals(value))
                {
                    tbxInput.Text = value;
                    companychange();
                }
            }
        }

        protected void btnCc_Click(object sender, EventArgs e)
        {
            ////执行也对业务逻辑后
            this.CompanyName = "触发值改变";
        }
    }

下面是调用端,新建一个index页面,把上面创建的用户控件拖上去就可以了。

Index后台代码

  public partial class Index : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

            UTTControl.companychange += new UTTControl.CompanychangedDelegate(companychangeindex);

        }

        protected void companychangeindex()
        {
            var stringc = this.UTTControl.CompanyName;
        }
    }

开始测试:

F5 跑起来,点击按钮

后台记得打断点

第一个断点到达

F5 放过去:

第二个断点到达

简单来说这就是个委托使用的小实现。

如果是其他控件比如button点击事件,或者textbox可以输入的可以采用下面方式

用户控件端代码:

 public delegate void CompanychangedDelegate(object sender, EventArgs e);//建立委托
       public CompanychangedDelegate companychange;

        protected void Page_Load(object sender, EventArgs e)
        {
            tbApprovalCompany.TextChanged += new EventHandler(companychange);
        }

调用页面代码

  //一般pageload里面绑定
  ApprovalCompanyUC1.companychange += new Infobase.Framework.WebUI.Workflow.UserControls.ApprovalCompanyUC1.CompanychangedDelegate(tbApprovalCompany_TextChanged);

  public void tbApprovalCompany_TextChanged(object sender, EventArgs e)
        {
            var company = ApprovalCompanyUC1.ApprovalCompany;
        }

原文地址:https://www.cnblogs.com/kim-meng/p/11785975.html

时间: 2024-08-02 14:52:23

WebForm 用户控件 委托 实现 textbox后台赋值 调用端处理实现 textchange的相关文章

webform用户控件

一,用户控件与页面的区别 1.扩展名:用户控件——.ascx  页面——.aspx 2.内容:页面有完整的HTML标记,用户控件没有 3.声明指示符:页面<%@ Page ...%>  用户控件<%@ Control ...%> 4.类的派生:页面派生自Page,用户控件派生自UserControl 5.页面可以独立运行,用户控件不能,它只能放在页面中才能运行 二,用户控件的好处 1.最大限度的实现代码重用,省去重复写代码的麻烦 2.团队合作时可以实现分工开发,节省时间 3.结构良

2016.2.24 利用用户控件和委托完美解决快速选择txbbox

1.首先将tet_box和一个datagridview控件打包成用户控件uC_QuickTxtBox 2.在用户控件中定义执行主窗口的委托函数 3.主窗体中添加用户控件的load事件,赋值 uC_QuickTxtBox1.qrytp = 1; //定义此实例将进行点.线或机场的哪种查询 uC_QuickTxtBox1.myDelegate = butquery_Click; //查询完成后,映射委托执行哪个主窗体的回传函数.若不执行任何后续操作,此行可以省略 //传统委托的写法是: uC_Qui

.NET中TextBox控件设置ReadOnly=true后台取不到值三种解决方法

.NET中TextBox控件设置ReadOnly=true后台取不到值三种解决方法 当TextBox设置了ReadOnly=true后要是在前台为控件添加了值,后台是取不到的,值为空,多么郁闷的一个问题经过尝试,发现可以通过如下的方式解决这个问题.感兴趣的朋友可以了解下 当TextBox设置了ReadOnly="true" 后,要是在前台为控件添加了值,后台是取不到的,值为“空” 原理没想通,说不清楚微软是出于什么考虑的,不过有时是要我们能通过前台脚本来填充值,并不希望用户修改其控件内

用户控件&amp;自定义控件----.Net再学

开始学习.Net到现在两年了快,开始学习java 也有大半年了,中间做项目,又开始.Net的学习.这次做.Net项目,后台代码敲的不是太多,重点放在了UI上,这也是这篇博客要写的内容有关,做UI就少不了控件的使用.这次做UI 主要是提取公共,抽象控件. 敲代码,就离不开控件,那是第一次.Net学习过之后,对于控件的认识很肤浅,通过这次学习,又弥补了对UI控件的认识.这篇博客要说的是:用户控件和自定义控件.提到这两种控件,想必编程的孩子们都不陌生,但是谈到使用,谈到他们的区别,伙伴们清楚吗? 我们

无边框窗体、用户控件、Timer控件

一.无边框窗体1 最大化.最小化以及关闭按钮制作 实际上就是更换点击前.指向时.点击时的图片 (1)将图片放在该文件夹的Debug中, 获取图片的路径 Application.StartupPath + "\\图片名.类型"(2)若是放在该文件夹的中,Application.StartupPath + "\\..\\..\\images\\图片名.类型" \..\文件夹名称... 向上翻一个文件夹,上面的第一个\是转义 pictureBox2.BackgroundI

WPF MVVM 用户控件完成分页

项目中经常会有分页查询的情况,在WPF中我们可以通过用户控件完成分页 一下为分页控件的页面代码, <UserControl x:Class="Foundation.UCtrl.NextPageControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml&qu

.net用户控件

用户控件用户控件是个什么东西?自定义的反复重用的控件集合 好处?1.代码重用2.结构良好3.分工开发4.局部缓存 难点:一.交换信息: 注意信息的交换只在相邻层之间进行交换,如果是嵌套交换信息除Session外都需要一层一层的写代码交互 (一)从页面向用户控件交换信息.代码写在页面中. 1.用户控件名.FindControl("用户控件中的控件的ID") TextBox textBox1 = WUC1.FindControl("TextBox1") as TextB

用户控件 WebUserControl .ascx

用户控件:WebUserControl   添加新项-用户控件 .ascx后缀,            派生.UserControl与页面的父类不是一个  是要嵌在页面里面使用 使用方法:直接设计页面拖到要放置的位置,出现以下两项 <%@ Register src="WUC.ascx" tagname="WUC" tagprefix="uc1" %> <uc1:WUC ID="WUC1" runat=&quo

WPF用户控件实现类似WinForm的子窗口

1.WPF 介绍 .NET Framework 4 WPF 是下一代显示系统,用于生成Windows 客户端应用程序. 使用 WPF可以创建广泛的独立应用程序以及浏览器承载的应用程序. WPF 的核心是一个与分辨率无关并且基于向量的呈现引擎,旨在利用现代图形硬件的优势.WPF 通过一整套应用程序开发功能扩展了这个核心,这些功能包括Extensible Application Markup Language (XAML).控件.数据绑定.布局.2-D和3-D图形.动画.样式.模板.文档.媒体.文本