вызов метода класса страницы содержимого из класса главной страницы - PullRequest
1 голос
/ 20 мая 2009

У меня есть публичный метод в классе страниц контента, я хочу вызвать этот метод из класса мастер-страниц
Спасибо

Ответы [ 3 ]

7 голосов
/ 20 мая 2009

Вы можете унаследовать свою страницу от базового класса. Затем вы можете создать виртуальный метод в вашем базовом классе, который будет переопределен на вашей странице. Затем вы можете вызвать этот виртуальный метод с главной страницы следующим образом -

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

Здесь cphPage - это идентификатор ContentPlaceHolder на главной странице. PageBase - это базовый класс, содержащий метод YourMethod.

РЕДАКТИРОВАТЬ: Конечно, вам придется поставить нулевую проверку перед вызовом метода YourMethod, используя экземпляр страницы.

3 голосов
/ 20 мая 2009

, если вы не хотите использовать какую-либо базовую страницу

добавьте это на свою главную страницу,

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 ...);

2 голосов
/ 30 мая 2012

ШАГИ:

  1. Добавить новую директиву <%@ MasterType VirtualPath="location of your masterpage" %> на страницу .aspx

  2. Объявите одну открытую функцию в MasterPage.

  3. Вызовите функцию со страницы содержимого, используя Master.functionName().

...