你有一点设计问题。您需要一些明确定义的父/子关系。这并不是一个真正的 Sitecore 问题......如果您考虑如何在 Sitecore 之外解决这个问题,那么正确的解决方案可能会很明显。
首先,我将创建一个明确引用 UserControl1 和 UserControl2 的新子布局。我们将其称为 ParentControl。然后将自定义事件添加到 UserControl2。我们称之为CustomButtonClick。ParentControl 然后订阅该事件,就像它订阅任何控件事件一样:
UserControl2.CustomButtonClick += new EventHandler(UserControl2_CustomClick);
然后在事件处理程序中:
void UserControl2_CustomClick(object sender, EventArgs e)
{
UserControl1.GetLabelText();
}
在您的演示详细信息中使用 ParentControl 而不是 Control1 和 Control2,您就完成了。您现在已经创建了这些控件之间的显式关系(通过 ParentControl),而不是您试图实现的隐含关系。你不能一边吃蛋糕一边吃……至少,在不违反良好设计原则的情况下是这样。