5

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

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

  1. 当我点击第一个<liferay-ui:search-container>标签的第三页时,第二个<liferay-ui:search-container>标签也移动到第三页。

  2. 此外,如果对于第一个<liferay-ui:search-container>标签,我在第 3 页并且我单击第二个标签的第 2 页,<liferay-ui:search-container>则第二个标签转到第 2 页,但第一个标签结果重置为第 1 页。

它们应该相互独立。

环境:Liferay 6.+

4

1 回答 1

7

我发现了两种不同的方法来做到这一点:

  1. 这可以通过curParam在标签中使用属性来实现<liferay-ui:search-container>,注意到下面的代码中的curParam="folderCurParam"curParam="fileCurParam",我通过liferay的源代码发现了这种docroot/html/portlet/document_library_display/view.jsp方式docroot/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构造函数来设置curParam,注意"cur1"文件夹和文件的参数是"cur2"

    // for folders
    SearchContainer searchContainer = new SearchContainer(renderRequest, null, null, "cur1", SearchContainer.DEFAULT_DELTA, portletURL, headerNames, "there-are-no-folders");
    
    // for files
    searchContainer = new SearchContainer(renderRequest, null, null, "cur2", SearchContainer.DEFAULT_DELTA, portletURL, headerNames, "there-are-no-documents-in-this-folder");
    

希望这可以帮助某人。

于 2012-07-17T12:49:38.807 回答