gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 18:47:45 25 4
gpt4 key购买 nike

我需要在单个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/

    25 4 0