Kentico 9搜索结果转换

时间:2017-02-28 19:30:43

标签: kentico

我们在查看法语搜索结果时发现了一个错误。在CMS Desk中,我保留了法语内容的英文页面名称。问题是,这些显示在法国结果页面上。

在转换中,基于默认值,我会像这样呈现可点击的标题:

<a href='<%# SearchResultUrl() %>' data-type="title" target="_blank" ><%#SearchHighlight(HTMLHelper.HTMLEncode(CMS.ExtendedControls.ControlsHelper.RemoveDynamicControls(DataHelper.GetNotEmpty(Eval("Title"), ""))), "<span class='highLight'>", "</span>")%></a>

我的想法是,如果填写了“菜单标题”,请使用该标题而不是标题。如何在不调整菜单页面类型的搜索字段的情况下输出DocumentMenuCaption?

我认为我的逻辑是,检查DocumentMenuCaption是否为emtpy,如果使用,请使用Title。

1 个答案:

答案 0 :(得分:2)

您应该能够继续使用GetNotEmpty并首先传入DocumentMenuCaption,如下所示:

<%# GetNotEmpty(GetSearchValue("DocumentMenuCaption");Eval("Title")) %>

您可能需要也可能不需要&#34; GetSearchValue&#34;函数,但允许您从对象中获取可能在搜索结果的默认列集中不可用的值。

或者,您应该能够使用IfEmpty()方法:

<%# IfEmpty(GetSearchValue("DocumentMenuCaption"), Eval("Title"), GetSearchValue("DocumentMenuCaption")) %>

这两种转换方法都是从这里开始的(对#34; GetNotEmpty&#34进行双重检查;因为它有不同的实现方式:https://docs.kentico.com/k9/developing-websites/loading-and-displaying-data-on-websites/writing-transformations/reference-transformation-methods

您可以在此处详细了解搜索转换:https://docs.kentico.com/k9/configuring-kentico/setting-up-search-on-your-website/displaying-search-results-using-transformations

相关问题