【问题标题】:EPiServer SearchDataSource control UseFallbackLanguage propertyEPiServer SearchDataSource 控件 UseFallbackLanguage 属性
【发布时间】:2011-11-15 12:33:48
【问题描述】:

UseFallbackLanguage 应该如何影响搜索结果? 我有以下代码:

<EPiServer:SearchDataSource ID="uiSearchDataSource" runat="server"      
               EnableVisibleInMenu="false" 
               UseFallbackLanguage="true"
               PageLink="<%# PageReference.StartPage %>" 
               LanguageBranches="<%# this.CurrentPage.LanguageBranch %>">
    <SelectParameters>
            <asp:QueryStringParameter Name="SearchQuery" QueryStringField="search" DefaultValue="" />
    </SelectParameters>
</EPiServer:SearchDataSource>

我期望的是,如果我搜索“单词”,那么它应该以当前语言以及每个页面的所有后备语言进行搜索。对吗?

目前我看不出真假值有什么区别。

【问题讨论】:

    标签: c# .net search content-management-system episerver


    【解决方案1】:

    编辑:

    忘记下面的部分。 SearchDataSource 完全覆盖 Select 方法并使用 FindPagesWithCriteria。 UseFallbackLanguage 属性仅在 PageDataSource 上使用,在继承的 SearchDataSource 中完全没有影响。

    该设置仅影响主语言后备。如果您找到的页面在当前语言中不可用,则会显示该页面的主语言版本。

    在 SearchDataSource 继承自的 PageDataSource 的 GetChildren 中使用:

    DataFactory.Instance.GetPage(new PageReference(pageID), LanguageSelector.AutoDetect(this.UseFallbackLanguage));

    此外,这样做的方式也有问题,我相信 AutoDetect 方法仍然存在错误。请参阅以下论坛帖子:

    http://world.episerver.com/Modules/Forum/Pages/Thread.aspx?id=35269&epslanguage=en

    【讨论】:

    • 但该代码不会影响搜索本身。仅在检索页面数据实例时?这意味着搜索仍将在当前语言分支或全部中执行,但不考虑后备?
    • 拥有属性真是太糟糕了,什么都不做:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多