新建一个简单的用户控件,以下图所示 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; }