用反射方法使用戶控件動態調用父頁面的方法

下面演示了用戶控件調用父頁面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;
        }

發佈了78 篇原創文章 · 獲贊 4 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章