Sitecore - 事件冒泡

时间:2012-11-28 14:22:15

标签: sitecore

我在布局中有两个渲染UserControls - UserControl1.ascx和UserControl2.ascx,通过sitecore演示文稿详细信息动态分配。

如何使用事件冒泡从UserControl2.ascx调用方法(UserControl1.ascx中的GetLabelText())?

这是我的示例代码 - 当我单击按钮(UserControl1.ascx中的UserControl2Button1)时 - 我想从UserControl2.ascx调用方法GetLabelText() - 使用事件冒泡。

1 个答案:

答案 0 :(得分:1)

你有一点设计问题。您需要一些明确定义的父/子关系。这不是Sitecore的真正问题......如果您考虑如何在Sitecore之外解决这个问题,那么正确的解决方案可能会很明显。

首先,我将创建一个显式引用UserControl1和UserControl2的新Sublayout。我们称之为ParentControl。然后将自定义事件添加到UserControl2。我们称之为CustomButtonClick。然后,ParentControl订阅该事件就像订阅任何控件事件一样:

UserControl2.CustomButtonClick += new EventHandler(UserControl2_CustomClick);

然后在事件处理程序中:

void UserControl2_CustomClick(object sender, EventArgs e)
{
    UserControl1.GetLabelText();
}

在Control1和Control2的Presentation Details intead中使用ParentControl,你就完成了。您现在已经在这些控件(通过ParentControl)之间创建了显式关系,而不是您尝试实现的隐含关系。你不能吃蛋糕也不能吃它......至少,不要违反良好的设计原则。