最好的方法是使用Sitecore.Events.Event
类引发(和订阅)事件。您的侧边栏子布局将在按钮的单击事件处理程序中使用以下内容引发事件:
Sitecore.Events.Event.RaiseEvent("YourEventName", new YourEventArgsClass { Property = "SomeValue" });
然后在另一个子布局中,您需要进行以下设置才能处理事件:
public partial class YourOtherSublayout : System.Web.UI.UserControl
{
private System.EventHandler eventHandlerRef;
protected void Page_Load(object sender, EventArgs e)
{
eventHandlerRef = EventHandlerMethod;
Sitecore.Events.Event.Subscribe("YourEventName", eventHandlerRef);
}
protected void Page_Unload(object sender, EventArgs e)
{
if (eventHandlerRef != null)
{
Sitecore.Events.Event.Unsubscribe("YourEventName", eventHandlerRef);
}
}
private void EventHandlerMethod(object sender, EventArgs e)
{
if (e != null)
{
//do stuff here
}
}
}
注意:保留 Page_Unload 代码很重要,否则您将看到 EventHandler 方法被多次调用。