2011-11-15 39 views
1

UseFallbackLanguage如何影響搜索結果? 我有下面的代碼:EPiServer SearchDataSource控件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> 

而我想到的是,如果我搜索「詞」,那麼它應該在當前的語言搜索,並在每一頁的所有備用語言。那是正確的嗎?

目前我沒有看到任何真正或錯誤的價值差異。

回答

2

編輯:

忘記以下部分。 SearchDataSource完全覆蓋Select方法並使用FindPagesWithCriteria。 UseFallbackLanguage屬性僅用於PageDataSource,在繼承的SearchDataSource中完全沒有效果。

該設置僅影響主語言回退。如果找到的頁面在當前語言中不可用,則會顯示該頁面的主語言版本。

據其中SearchDataSource繼承的PageDataSource的的GetChildren使用:

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

此外,這樣做的方式是越野車,我相信仍然有一個AutoDetect方法的錯誤。請參閱下面的論壇帖子:

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

+1

但這些代碼不會影響搜索自己。只有當頁面數據實例被檢索?這意味着搜索仍將以當前語言分支或全部進行,但不會涉及回退? – Sly

+0

它有這麼糟糕的主意,有屬性,什麼都不做:( – Sly