【问题标题】:How can you render widgets from a different page in Kentico?如何在 Kentico 中从不同页面呈现小部件?
【发布时间】:2017-04-09 08:07:53
【问题描述】:

我正在使用一个使用“ASPX + Portal Engine”模板类型的 Kentico 应用程序。在其中一个页面中,我需要显示所有子节点中的所有小部件和 Web 部件(基本上是整个页面)。

如果我使用“门户引擎”模板类型并在用户控件中包含以下代码,它就可以正常工作:

<asp:Repeater runat="server" ID="ChildPagesRepeater" ItemType="CMS.DocumentEngine.TreeNode">
    <ItemTemplate>
            <div>
                <p><%# Item.DocumentPageTitle %></p>

                <cms:CMSPagePlaceholder runat="server" ShortID="p" Path="<%# Item.NodeAliasPath %>" />

            </div>
    </ItemTemplate>
</asp:Repeater>

在 CodeBehind 中,我将 ChildPagesRepeater 的 DataSource 设置为 CurrentDocument 的 TreeNode 子级,这“正常工作”。但它不适用于“门户引擎 + ASPX”模板。我在这里想念什么?

我最后的手段是使用WebClient 来获取子页面的标记并直接呈现它,但我宁愿以“正确”的方式进行。我已经对此进行了测试,并且确实有效,但感觉不是这样做的“正确”方法。

【问题讨论】:

  • 不工作时怎么办?它会抛出任何错误等吗?不要使用WebClient 来实现这一点,你会遇到更多问题。

标签: kentico


【解决方案1】:

我已经完成了这个技巧,但仅在门户中,我只能猜测在门户+aspx.net 中完成的相同操作是否不起作用,一个渲染所有区域和另一个仅加载 webpart 的编码差异进入现有区域可能是个问题。

出于好奇,你为什么要做aspx.net+portal?与在 aspx.net+portal 中相比,您在纯 Portal(加上自定义控件)中不能做的事情很少,而且拥有硬编码的主模板非常烦人。我会转换。

【讨论】:

  • 感谢您的回答。我不得不转换回 Portal,因为我找不到解决这个问题的方法。我尝试“aspx + 门户”的原因是拥有我们自己的文件夹结构,将所有内容置于源代码控制之下,并尽量减少从 Kentico 导出和导入模板(我们是一个同时工作的开发团队)。
猜你喜欢
  • 1970-01-01
  • 2020-11-17
  • 2022-10-13
  • 1970-01-01
  • 2019-06-01
  • 2013-12-03
  • 1970-01-01
  • 2018-10-20
  • 2021-06-18
相关资源
最近更新 更多