如果不存在子页面,则隐藏包含两个中继器的Web部件区域

时间:2017-01-25 21:23:52

标签: kentico

我有一个有两个中继器的Web部件区域。每个转发器使用相同的路径'/进程/%'。如果'/ Processes /%'中不存在子页面,隐藏整个Web部件区域的最佳方法是什么?

我要检查的网页并不直接位于页面下方,而是位于子页面下。如何在特定路径下检查孙子页面? '/ Processes /%'?

3 个答案:

答案 0 :(得分:2)

您可以使用Documents宏来访问正确的文档,并检查它是否有子文件。

如果Processes页面的别名路径为/Processes,并且您想要检查它是否包含子页面(/Processes/%):

{% Documents["/Processes"].NodeHasChildren %}

如果别名路径为/MyPage/Processes(且子项位于/MyPage/Processes/%下):

{% Documents["/MyPage/Processes"].NodeHasChildren %}

然后,您可以将其用作"可见"上的宏。您的WebPart区域的属性。

答案 1 :(得分:1)

在Web部件区域可见性属性中输入宏:

{%CurrentDocument.NodeHasChildren%}

答案 2 :(得分:1)

Repeater有Hide,如果没有找到记录的属性会自动隐藏它,但是如果你真的需要寻找chrandchildren,你必须遍历循环中的所有子页面:

{%
result = false;
foreach (p IN CurrentDocument.Children) {
 if (p.NodeHasChildren) {
  return true;
 }
}
return result;
%}