我正在使用一个 Sublayout (Sitecore),并且有一个 placeHolder 当前包含 2 个 Web 控件。我想从一个 Webcontrol 访问标签到另一个 Webcontrol。 我是否必须递归地找到标签,或者我可以通过另一种方式访问标签吗? 我尝试了不同的方法,例如:
this.Page.Findcontrol 这个.Parent.Findcontrol 等..
Label lblSearchTerm = (Label)this.Parent.FindControl("lblSearchTerm");
Label lblResults = (Label)this.Parent.FindControl("lblResults");
Label lblSearchTerm = null 不会给我任何结果。 我希望这里有人知道解决此问题的方法。
请您参考如下方法:
我不熟悉 Sitecore,但如果我正确理解你的问题,那么你的标签就是其中一个网络控件的子控件。如果这是真的,那么要找到这些标签,您需要先找到它们的父级(即:网络控件)。
假设以下控制层次结构:
Page
> WebControl1
> Label
> WebControl2
> Label
> Button
如果您尝试从 WebControl1 访问 WebControl2 上的标签,则
Label lblSearchTerm = (Label)this.Parent.FindControl("lblSearchTerm");
将不起作用,因为 this.Parent 将返回 Page 对象,而您要查找的标签不是 Page 的子对象。相反,它是“WebControl2”的子项,它本身是页面的子项。所以像下面这样的东西应该起作用:
Label lblSearchTerm = (Label)this.Parent.FindControl("WebControl2").FindControl("lblSearchTerm");
真的,如果标签的所有者是唯一修改它的人会更好,但这完全是另一个讨论。
