gpt4 book ai didi

episerver - 根据打开页面的列表以不同方式呈现页面

转载 作者:行者123 更新时间:2023-12-04 06:07:01 25 4
gpt4 key购买 nike

我有两个不同页面类型的列表 - NewsItems 和 PressReleases。它们每个都显示在一个列表中,并带有指向各个项目的链接。

现在我想将新闻发布项目包含到新闻列表中,并使用新闻项目的样式将它们显示为新闻项目。它们共享新闻模板中使用的“标题”和“正文”等属性。

我想用两组页面提供 NewsItems 的 ListPage 不会那么困难,但我不明白如何控制项目页面的呈现。

我想从 NewsItem 或 PressReleaseItem 中获取 PageData 对象并使用 News-Item.aspx 模板显示它,如果它在 NewsList 中被选中。但是 EPiServer 将始终使用 PR-Item.aspx 呈现 PressReleaseItem,因为它与 PageType 设置耦合。

有谁知道如何做到这一点?

编辑 : 努力澄清:

重要的问题是如何知道“列表父级”并从中选择正确的模板。 In the ListPage I can apply different looks on the PR and News items respectively using tompipes answer, but when selecting to see an individual item EPi will render the PR-Item-1 the same way regardless of their "list parent".那就是问题所在。

Conceptual design

最佳答案

我没有完全按照您在这里尝试的方式进行操作。但我想我明白了要点。

为什么不为两种页面类型使用一个 aspx 模板,而是在使用可见属性关闭部分的代码中。

如果您使用的是 PageTypeBuilder,则可以使用“is”关键字:

somePlaceHolder.Visible = CurrentPage is NewsItemList;

如果您不使用 PTB,则可以使用以下内容:
somePlaceholder.Visble = CurrentPage.PageTypeID == 10;

或者
somePlaceholder.Visble = CurrentPage.PageTypeName == "NewsItemList";

我现在要指出的是,我不喜欢硬编码任何东西,所以我会将模板名称或 ID 放入配置文件或开始/根页面上的属性中,以避免对它们进行硬编码。

让我知道这是否会有所帮助,或者如果我误解了,请尝试详细说明您的问题。

关于episerver - 根据打开页面的列表以不同方式呈现页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8242033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com