2

我创建了一个指向网站的自定义文档类型。它只有一个 DocumentName 字段和一个 Path 字段。您可以将这些文件放在它们自己的下面。因此,您可以在内容树中拥有包含 Doc1、Doc2、Doc3 的 DocA。我的转换代码如下所示:

<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>

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

4

3 回答 3

0

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

否则,内联代码之类Path='<%# Eval("NodeAliasPath") + "/%" %>'的将在转发器数据绑定后得到处理。

很容易测试 - 放置路径的静态版本,看看你是否得到结果。

于 2013-09-05T12:40:39.557 回答
0

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

于 2012-06-19T12:05:50.263 回答
0

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

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

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

于 2012-12-19T21:36:04.127 回答