从嵌套主页调用内容页方法



我当前有两个主页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();
    }

但是日历列表始终是null的,因此未调用函数。

经过一些认真的研究和涉水后,我终于在主页上制作了日历,以在内容页面中触发事件。

内容页面中的代码与问题中提到的代码相同。

第二个主页(嵌套)中的代码更改为:

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" %> 

最新更新