2016-12-02 2 views
0

В настоящее время у меня две основные страницы M1 и M2 и несколько страниц контента.Вызов метода страницы содержимого из вложенных основных страниц

У M2 есть элемент управления календарем, и я хочу вызвать функцию страницы контента каждый раз, когда изменяется выбор в календаре.

Вот код, у меня есть в моей главной странице:

public partial class Master2 : BaseMasterPage 
{ 
    public event EventHandler CalendarSelectionChanged; 

    public void Calendar_OnSelectionChanged(object sender, EventArgs e) 
    { 
     if (CalendarSelectionChanged != null) 
      CalendarSelectionChanged(this, EventArgs.Empty); 
    } 
} 

А вот код в содержание страницы C1:

protected void Page_PreInit(object sender, EventArgs e) 
    { 
     Master.CalendarSelectionChanged += new EventHandler(OnMainCalendarSelectionChanged_SubContent); 
    } 

private void OnMainCalendarSelectionChanged_SubContent(object sender, EventArgs e) 
    { 
     DoSomething(); 
    } 

но CalendarSelectionChanged всегда нуль и, следовательно, функция ISN» t называется.

+0

который календарь управления вы используете? – McNets

+0

Управление календарем asp.net, метод Calendar_OnSelectionChanged запускается и хорош, только обработчик событий всегда равен нулю. – Zee

+0

'public void Calendar_OnSelectionChanged (отправитель объекта, EventArgs e)' уволен? – McNets

ответ

0

После некоторого серьезного исследования и обсуждения, я, наконец, сделал календарь на главной странице, чтобы вызвать событие на странице содержимого.

Код на странице содержания совпадает с указанным в вопросе.

Кодекс во Второй мастер-страницы (вложен) Изменен:

public partial class Master2 : BaseMasterPage 
{ 
    public event EventHandler CalendarSelectionChanged; 

    public void Calendar_OnSelectionChanged(object sender, EventArgs e) 
    { 
     OnCalendar_SelectionChanged_CustomEvent(e); 

     ///..... 
    } 
public virtual void OnCalendar_SelectionChanged_CustomEvent(EventArgs e) 
    { 
     if (Calendar_SelectionChanged_CustomEvent != null) 
      Calendar_SelectionChanged_CustomEvent(this, EventArgs.Empty); 
    } 
} 

Добавить виртуальный ссылочный путь на странице содержимого:

<%@ MasterType VirtualPath="~/MasterPage.master" %> 
+0

Это работает для меня Теперь. :) – Zee

Смежные вопросы