下面演示了用戶控件調用父頁面SetLaeble方法。
父頁面類型用反射的方法獲取,這避免了不同頁面調用同樣時,需要類型轉換的問題(不用寫很多case了:))。
當然還有一種方法是父頁面去實現一個接口,即去實現SetLabel方法,uc把this.Page轉成這個接口就可以了。
用戶控件:
using System.Reflection;
private void Button1_Click(object sender, System.EventArgs e)
{
//用反射方法動態調用父頁面的方法
System.Web.UI.Page p = this.Page;
Type pageType = p.GetType();
MethodInfo mi = pageType.GetMethod("SetLabel");
mi.Invoke(p,new object[]{"你這個大豬豬!"});
}
父頁面:
public void SetLabel(string str)
{
this.Label1.Text = str;
}