我当前有两个主页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" %>