我创建了一个指向网站的自定义文档类型。它只有一个DocumentName字段和一个Path字段。您可以将这些文档放在自己的下面。因此,您可以在内容树中将DocA与Doc1,Doc2,Doc3放在一起。我的转换代码如下所示:
<li class="CMSListMenuLI">
<a class="CMSListMenuLink" href="<%# Eval("Path") %>"> <%# Eval("DocumentName") %> </a>
<p><%# Eval("NodeAliasPath") + "/%" %></p>
<ul>
<cms:CMSRepeater runat="server" ID="Repeater1" TransformationName="whirlpool.deptNav.MenuList" ClassNames="whirlpool.deptNav" Path='<%# Eval("NodeAliasPath") + "/%" %>' />
</ul>
</li>
如您所见,我正在尝试创建一个表示内容树结构的嵌套列表。但是,内部中继器永远不会返回任何内容。它使用了我上面列出的相同转换。
答案 0 :(得分:0)
您是否尝试过临时设置硬编码路径值?我怀疑内联代码可能有些问题。
答案 1 :(得分:0)
如果您始终只想获取父转发器的子项,请在父转发器的webpart属性中设置“嵌套控件ID”。设置此属性将强制内部转发器始终使用您所描述的路径 - 即其父路径。
或者,如果您尝试将路径设置为内容树中的其他位置而不继承父路径,则不要设置“嵌套控件ID”属性,而是在内部转发器上指定您需要的路径,然后将“DelayedLoading”设置为true,以允许控件从其父路径“中断”并在CMS树的其他路径中查找文档。
编辑:我还注意到你可能试图在外部和内部中继器上使用相同的转换,这会创建一种递归转换结构。它是否正确?如果有,你有运气吗?
答案 2 :(得分:0)
尝试在Repeater控件上使用属性DelayedLoading="true"
。
其他内联代码(如Path='<%# Eval("NodeAliasPath") + "/%" %>'
)将在转发器数据绑定后进行处理。
轻松测试 - 放置路径的静态版本,看看是否得到了结果。