1

我的内容页类中有一个公共方法,我想从母版页类中调用此方法
谢谢

4

3 回答 3

7

您可以从基类继承您的页面。然后,您可以在您的基类中创建一个虚拟方法,该方法将在您的页面中被覆盖。然后,您可以像这样从母版页调用该虚拟方法 -

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

这里,cphPageContentPlaceHolder您的母版页中的 ID。PageBase是包含该YourMethod方法的基类。

YourMethod编辑:当然,在使用页面实例调用方法之前,您必须进行空值检查。

于 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 中声明一个公共函数。

  3. 使用 . 从内容页面调用函数Master.functionName()

于 2012-05-30T09:56:52.100 回答