【问题标题】:Kentico 9 search result transformationKentico 9 搜索结果转换
【发布时间】:2017-02-28 19:30:43
【问题描述】:

我们在查看法语搜索结果时发现了一个错误。在 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 是否为空,如果使用,则使用 Title。

【问题讨论】:

    标签: kentico


    【解决方案1】:

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

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

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

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

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

    这两种转换方法都取自这里(仔细检查“GetNotEmpty”的语法,因为它有不同的实现方式: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

    【讨论】:

    • 干杯。我无法让 GetNotEmpty 工作,但 IfEmpty 是诀窍。我重新调整了转换,它似乎运行良好。
    猜你喜欢
    • 1970-01-01
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    • 2012-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多