一個 User Control,裡面大多會自己定義了許多的方法,當主頁面加入了這個 User Control之後,並想要呼叫 User Control 的方法,[Professional ASP.NET Server Controls]作者有介紹了一篇不錯的用法:
假設 User Control 定義了:
public string ShowUCMsgWithSomeString(string str)
{
return string.Format("This message is from usercontrol and with some strign :{0}", str);
}
則主頁呼叫的方式為:
// 待會給 MethodInfo 使用
using System.Reflection;
//抓目前頁面上的 UserControl
Control ctl = Page.FindControl("MyUC1");
//取得執行個體的 Type
Type ctlType = ctl.GetType();
//取得已定義的方法
MethodInfo ctlMethod = ctlType.GetMethod("ShowUCMsgWithSomeString");
//取得已定義方法的參數
ParameterInfo[] p = ctlMethod.GetParameters();
//輸入參數宣告
Object[] parameters = new Object[p.Length];
string strPassInfo = "Hello my usercontrol!";
parameters[0] = strPassInfo;
//執行 UserControl 所定義的方法
lbMsg2.Text = ctlMethod.Invoke(ctl, parameters).ToString();
程式參考:
\\3probe-server\RD2\Document\Program\User Control\UCTest01.zip
2008年4月25日 星期五
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言