嵌套转发器没有返回任何内容

时间:2012-06-18 18:31:37

标签: asp.net kentico

我创建了一个指向网站的自定义文档类型。它只有一个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>

如您所见,我正在尝试创建一个表示内容树结构的嵌套列表。但是,内部中继器永远不会返回任何内容。它使用了我上面列出的相同转换。

3 个答案:

答案 0 :(得分:0)

您是否尝试过临时设置硬编码路径值?我怀疑内联代码可能有些问题。

答案 1 :(得分:0)

如果您始终只想获取父转发器的子项,请在父转发器的webpart属性中设置“嵌套控件ID”。设置此属性将强制内部转发器始终使用您所描述的路径 - 即其父路径。

或者,如果您尝试将路径设置为内容树中的其他位置而不继承父路径,则不要设置“嵌套控件ID”属性,而是在内部转发器上指定您需要的路径,然后将“DelayedLoading”设置为true,以允许控件从其父路径“中断”并在CMS树的其他路径中查找文档。

编辑:我还注意到你可能试图在外部和内部中继器上使用相同的转换,这会创建一种递归转换结构。它是否正确?如果有,你有运气吗?

答案 2 :(得分:0)

尝试在Repeater控件上使用属性DelayedLoading="true"

其他内联代码(如Path='<%# Eval("NodeAliasPath") + "/%" %>')将在转发器数据绑定后进行处理。

轻松测试 - 放置路径的静态版本,看看是否得到了结果。