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

标签 liferay liferay-6

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

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

  • 当我单击第一个<liferay-ui:search-container>标签的第三页时,第二个<liferay-ui:search-container>标签也移至第三页。
  • 同样,如果对于第一个<liferay-ui:search-container>标签,我在第3页上,并且单击第二个<liferay-ui:search-container>标签的第2页,那么第二个标签将转到第2页,但第一个标签的结果将重置为第1页。

  • 它们应该彼此独立。

    环境:Liferay 6. +

    最佳答案

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

  • 这可以通过在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>
    
  • 我在liferay的源代码docroot/html/portlet/journal/select_document_library.jsp中再次发现了此问题,它使用 SearchContainer constructor 来设置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");
    

  • 希望这对某人有帮助。

    关于liferay - 如何在单个JSP中使用两个(多个)Liferay UI搜索容器标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11522824/

    相关文章:

    java - Gradle 构建错误 : Failed to appy plugin[class 'org. gradle.api.plugins.JavaPlugin

    javascript - Liferay 6.2 表单验证问题

    java - 如何在 liferay 6.2 中的每个新选项卡上实例化新的 session 范围 Controller ,同时保留旧选项卡

    javascript - $( #divid ).load(pagename.jsp) 在 liferay 6.1 中不起作用

    Liferay 的 Java 还是 Django?

    java - 并发 API LayoutLocalService.addLayout 在 LayoutSetLocalService 中抛出 StaleObjectStateException

    liferay - liferay-ui :search-container? 中的动态列

    java - 为一个条目输入的值存储在其他条目中,而不是唯一值

    mysql - 传递值并在 Liferay 自定义查询中使用它

    liferay-6 - 删除liferay门户实例