新建一個簡單的用戶控件,以下圖所示 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; }