WebForm 用戶控件 委託 實現 textbox後臺賦值 調用端處理實現 textchange

新建一個簡單的用戶控件,以下圖所示 textbox只讀,button按鈕模擬實現一堆業務邏輯後對textbox賦值。測試

 

 

 

 

 

 

 

用戶控件後臺代碼也很簡單this

 

 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頁面,把上面建立的用戶控件拖上去就能夠了。spa

 

 

 

 

Index後臺代碼3d

 

  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;
        }
    }

 

開始測試:code

F5 跑起來,點擊按鈕blog

 

 

後臺記得打斷點事件

第一個斷點到達get

 

 

 

 

F5 放過去:string

第二個斷點到達event

 

 

 

 

 

 

 

簡單來講這就是個委託使用的小實現。

 

若是是其餘控件好比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;
        }
相關文章
相關標籤/搜索