1


コンテンツ ページ クラスにパブリック メソッドがあり、マスター ページ クラスからこのメソッドを呼び出したい

4

3 に答える 3

7

基本クラスからページを継承できます。次に、ページでオーバーライドされる基本クラスに仮想メソッドを作成できます。次に、次のようにマスターページからその仮想メソッドを呼び出すことができます-

(cphPage.Page as PageBase).YourMethod();

は、マスターページcphPageの の ID です。メソッドを含む基本クラスです。ContentPlaceHolderPageBaseYourMethod

編集: もちろん、YourMethodページのインスタンスを使用してメソッドを呼び出す前に、null チェックを入れる必要があります。

于 2009-05-20T10:35:09.130 に答える
3

ベースページを使用したくない場合

これをマスターページに追加し、

private object callContentFunction(string methodName, params object[] parameters)
{
    Type contentType = this.Page.GetType();
    System.Reflection.MethodInfo mi = contentType.GetMethod(methodName);
    if(mi == null)return null;
    return mi.Invoke(this.Page, parameters);
}

それからそれを使用してください

callContentFunction("myPublicMethodName", myParam1, myParam2...);

于 2009-05-20T10:53:07.707 に答える
2

手順:

  1. <%@ MasterType VirtualPath="location of your masterpage" %>.aspxページに新しいディレクティブを追加します

  2. MasterPageで1つのパブリック関数を宣言します。

  3. を使用してコンテンツページから関数を呼び出しますMaster.functionName()

于 2012-05-30T09:56:52.100 に答える