5

1つのJSPで2つの異なる<liferay-ui:search-container>タグを使用する必要があります。

<liferay-ui:search-container>2つのタグを使用すると、ページネーションで問題が発生します。

  1. <liferay-ui:search-container>最初のタグの3ページ目をクリックすると、2番目の<liferay-ui:search-container>タグも3ページ目に移動します。

  2. また、最初の<liferay-ui:search-container>タグでページ3にいて、2番目のタグのページ2をクリック<liferay-ui:search-container>すると、2番目のタグはページ2に移動しますが、最初のタグの結果はページ1にリセットされます。

それらは互いに独立している必要があります。

環境:Liferay 6.+

4

1 に答える 1

7

私はこれを行うために2つの異なる方法を見つけました:

  1. これは、タグのcurParam属性を使用することで可能になります。次のコードで、liferayのソースコードからこの方法を見つけました。<liferay-ui:search-container>curParam="folderCurParam"curParam="fileCurParam"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コンストラクターを使用してを設定し、フォルダーとファイル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 に答える