为了在 Sitecore 6.3.1 站点上实现搜索结果页面,我创建了一个内容项,/sitecore/content/Home/Search
并将一个搜索结果子布局添加到其演示控件中。子布局使用 ListView 来显示搜索结果,并使用 DataPager 来处理分页。
以下是摘录Search Results.ascx
:
<asp:ListView ID="SearchResults" runat="server"> <布局模板> <asp:DataPager ID="Pager" QueryStringField="page" runat="server"> <字段> <asp:NumericPagerField ButtonCount="10" /> </字段> </asp:DataPager> <asp:Placeholder ID="itemPlaceholder" runat="server" /> </布局模板> ... </asp:ListView>
请注意,DataPager 的QueryStringField
参数设置为非空值。
渲染子布局时,搜索结果和分页控件会正确显示。但是,分页超链接会转到错误的 URL。它们没有转到页面 URL,而是链接到布局的 URL。
例如,如果用户点击页面 2 的链接,人们会期望他的浏览器转到例如http://www.example.com/Search.aspx?query=xyz&page=2。但他的浏览器实际上链接到http://www.example.com/layouts/Generic%20Browser%20Layout.aspx?query=xyz&page=2。
DataPager 在哪里获取虚假 URL,我该如何解决?