如何在单个JSP中使用两个(多个)Liferay UI搜索容器标记

时间:2012-07-17 12:49:39

标签: liferay liferay-6

我需要在一个JSP中使用两个不同的<liferay-ui:search-container>标记。

如果我们使用两个<liferay-ui:search-container>标记,则分页会出现问题:

  1. 当我点击第一个<liferay-ui:search-container>标记的第3页时,第二个<liferay-ui:search-container>标记也会移至第三页。

  2. 此外,如果我在第3页的第一个<liferay-ui:search-container>标签,然后点击第二个<liferay-ui:search-container>标签的第2页,那么第二个标签会转到第2页但是第一个标签结果重置为第-1页。

  3. 他们应该彼此独立。

    环境:Liferay 6。+

1 个答案:

答案 0 :(得分:6)

我发现了两种不同的方法:

  1. 通过curParam标记中的 <liferay-ui:search-container> 属性可以实现这一点,注意到以下curParam="folderCurParam"curParam="fileCurParam"代码,我通过liferay的源代码docroot/html/portlet/document_library_display/view.jspdocroot/html/portlet/document_library_display/view_file_entries.jspf找到了这种方式:

    <liferay-ui:search-container
            curParam="folderCurParam"
            emptyResultsMessage="no-folders-to-display"  
            iteratorURL="<%= portletURL %>"
            delta="10">
    
        <liferay-ui:search-container-results
                results="<%=folderResults %>"
                total="<%= folderTotal %>" />
    
        <liferay-ui:search-container-row
                className="com.liferay.portal.kernel.repository.model.Folder"
                keyProperty="userId"
                modelVar="folder">
    
            <liferay-ui:search-container-column-jsp align="left"
                    path="/html/documentdisplay/folder_search_results.jsp" />
    
        </liferay-ui:search-container-row>
    
        <liferay-ui:search-iterator />
    
    </liferay-ui:search-container>
    
    <liferay-ui:search-container
            curParam="fileCurParam"
            emptyResultsMessage="no-files-to-display" 
            iteratorURL="<%= portletURL %>"
            delta="10">
        <liferay-ui:search-container-results
                results="<%=fileResults %>"
                total="<%= fileTotal %>" />
    
        <liferay-ui:search-container-row
                className="com.liferay.portal.kernel.repository.model.FileEntry"
                keyProperty="userId"
                modelVar="fileEntry">
    
            <liferay-ui:search-container-column-jsp align="left"
                    path="/html/documentdisplay/files_search_results.jsp" />
    
        </liferay-ui:search-container-row>
    
        <liferay-ui:search-iterator />
    
    </liferay-ui:search-container>
    
  2. 我在liferay的源代码docroot/html/portlet/journal/select_document_library.jsp中再次发现了这一点,这使用 SearchContainer constructor 来设置curParam,注意参数{{1对于文件夹和文件,它是"cur1"

    "cur2"
  3. 希望这有助于某人。