2013-02-28 123 views
3

我在我的代碼中使用了liferay-ui:search-container。Liferay搜索容器分頁

搜索結果正在正確顯示,直到我點擊NEXT。 Portlet正在重新加載,並將我帶到Portlet的第一頁,摧毀了所呈現的搜索結果。

即使在Portlet重新加載後,如何保留搜索結果?

回答

1

Liferay搜索容器對單擊「next」和「previous」時所通過的參數起作用。

請注意「下一個」和「上一個」鏈接的URL。

對於例如,URL將具有類似參數:

p_p_id = 15 & p_p_lifecycle = 0 & p_p_state =最大化& p_p_mode =視圖& doAsGroupId = 10194 & refererPlid = 12110 & _15_struts_action =%2Fjournal%2Fview & _15_tabs1 =模板& _15_delta = 20 & _15_keywords = & _15_advancedSearch =假& _15_andOperator =真& _15_description = & _15_groupIds = 10194 & _15_name = & _15_structureId = & _15_searchTemplateId = & _15_resetCur =假& CUR = 2

Liferay的搜索容器使用增量,CUR參數導航到下一組結果。

有關更多信息,請查看使用搜索容器的liferay portlet以及它們如何構建URL。

4

如果默認行爲不符合您的需要,您可以爲iteratorURL屬性賦予一個值。

在以下示例中,當您在搜索結果表上單擊「下一步」時,portlet的proccesAction()方法將與param1和param2一起調用。

您可以爲該方法添加邏輯來保留您的搜索結果。

<% 
PortletURL urlPaginator=renderResponse.createActionURL(); 
urlPaginator.setParameter("param1", value1); 
urlPaginator.setParameter("param2",value2); 
%> 

<liferay-ui:search-container iteratorURL="<%=urlPaginator%>">