zoukankan      html  css  js  c++  java
  • 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;
            }
  • 相关阅读:
    sql执行效率小结--待持续新加更新
    野路子学习esp32(十) NodeMcu-自定义固件@a.宏万
    野路子学习esp32(十) NodeMcu-网络应用@a.宏万
    野路子学习esp32(十) NodeMcu-WIFi@a.宏万
    野路子学习esp32(十) NodeMcu-GPIO@a.宏万
    野路子学习esp32(九) NodeMcu学习@a.宏万
    野路子学习esp32(八) GPIO 点亮LED@a.宏万
    野路子学习esp32(七) 新建一个应用@a.宏万
    EMQ 安装与部署 @a.宏万
    阿里云代码管理配置@a.宏万
  • 原文地址:https://www.cnblogs.com/kim-meng/p/11785975.html
Copyright © 2011-2022 走看看