2017-01-25 4 views
0

У меня есть зона веб-частей, в которой есть два повторителя. Каждый повторитель использует один и тот же путь/Процессы /% '. Каков наилучший способ скрыть всю зону веб-части, если в «/ Processes /%» не существует дочерних страниц?Скрыть зону веб-части, содержащую два повторителя, если не существует дочерних страниц

Страницы, на которые я проверяю, не живут непосредственно под страницей, а под дочерней страницей. Как проверить страницы внуков по определенному пути? '/ Процессы /%'?

ответ

2

Вы можете использовать Documents макрос для доступа правильного документа, и проверить, если он имеет ребенок.

Если псевдоним путь вашей Processes страницы /Processes, и вы хотите, чтобы проверить, если он имеет дочерние страницы (/Processes/%):

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

Если псевдоним путь /MyPage/Processes (и ребенок, находящиеся под /MyPage/Processes/%) :

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

Затем вы можете использовать это как макрос в свойстве «Видимое» вашей зоны WebPart.

+0

Отличное предложение. Было бы необходимо добавить ["./Processes"], чтобы путь был более динамичным? – tylerpenney

1

Введите макрос в веб-часть зоне видимости собственности:

{%CurrentDocument.NodeHasChildren%} 
+0

Спасибо, я на самом деле проверяю страницы «Grandchild». На странице есть «папка», содержащая фактические страницы, которые я ищу. Итак, MyPage/Processes/ChildPage - нужно проверить эти страницы внуков. – tylerpenney

1

Повторитель имеет Скрывать, если запись не найдена недвижимость, которая скрывает его автоматически, но если вам действительно нужно искать для chrandchildren вам придется пройти через все дочерние страницы в цикле:

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

Спасибо, это помогает. Единственное, что я бы изменил, это добавить разрыв, если он найдет ребенка. – tylerpenney

+0

return breaks функция, поэтому она прекращает обработку, когда находит ребенка – JanH