2017-01-25 3 views
0

2つのリピーターを持つWebパーツゾーンがあります。各リピーターは同じパス '/ Processes /%'を使用します。 '/ Processes /%'に子ページがない場合、ウェブパーツゾーン全体を非表示にする最良の方法は何ですか?子ページが存在しない場合、2つのリピーターを含むWebパーツゾーンを非表示にする

私が確認しているページは、ページの下にはなく、子ページの下に直接存在しません。特定のパスの下で孫ページを確認するにはどうすればよいですか? '/ Processes /%'?

答えて

2

あなたは正しいドキュメントにアクセスするDocumentsマクロを使用し、それが子供を持っているかどうかを確認できます。

あなたProcessesページのエイリアスパスは/Processesあり、そしてあなたはそれが子ページ(/Processes/%)があるかどうかを確認したい場合は、次のエイリアスパスが/MyPage/Processesある場合

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

(および/MyPage/Processes/%下にある子どもを) :

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

あなたは、あなたのWebパーツゾーンの「可視」プロパティにマクロとしてそれを使用することができます。

+0

素晴らしい提案です。パスがより動的になるように["./Processes"]を追加する必要がありますか? – tylerpenney

1

ウェブパーツゾーンの可視性プロパティにマクロを入力します。

{%CurrentDocument.NodeHasChildren%} 
+0

ありがとう、私は実際に "孫"のページをチェックしています。ページには、私が探している実際のページを含む「フォルダ」があります。だからMyPage/Processes/ChildPage - これらの孫のページを確認する必要があります – tylerpenney

1

リピーターにはレコードが自動的にそれを隠し財産が見つかっていない場合は非表示]を持っていますが、あなたが本当にchrandchildrenを探す必要がある場合には、通過しなければなりませんループ内のすべての子ページは:

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

ありがとう、これは役に立ちます。私が変える唯一のことは、それが子供を見つけたら、休憩を加えることだろう。 – tylerpenney

+0

returnは関数を壊すので、子が見つかると処理が中止されます – JanH

関連する問題