展开的行应该在选择另一行时折叠

expanded row should be collapse on selection of anotherrow

本文关键字:一行 折叠 选择      更新时间:2023-09-26

我使用的是primefaces 3.3,并在数据表下使用p:rowExpansion和p:toggler。我想在选择另一行时折叠先前展开的行。

我有一个id为reconcileTable的数据表

我们有什么特征来处理这种情况吗?

提前感谢!

代码片段::

 <p:dataTable id="ux_reconciliation_table" widgetVar="reconcileTable">                                   
    <p:ajax event="rowSelect" listener="#{reconciliationBean.validateReconciliationAction}" update=":reconciliation_form:multiProcessBtn,:message_form_dialog :reconciliation_form:removeLatestSel" oncomplete="checkRowExpansion()"></p:ajax>
    <p:ajax event="rowToggle" listener="#{reconciliationBean.onRowToggle}" update="ux_row_nonrequired_content "/>
    <p:ajax event="rowUnselect" update=":reconciliation_form:multiProcessBtn"/>
    <f:facet name="header">
    <p:outputPanel>
    <p:outputLabel value="#{resourceBundle['reconciliation.worksheet_search.label']} " styleClass="ux_reconciliation_datatable_header_text"/>
    <p:inputText id="globalFilter" onkeyup="reconcileTable.filter()" styleClass="ux_reconciliation_input_search_field" />
    <h:graphicImage value="../images/common/I_Search.png" styleClass="ux_dialog_search"/>
    </p:outputPanel>
    </f:facet>
    <p:column id="Billing_MiscParty_PartyRole_Party_Organization_NameInfo_longName" sortBy="#{reconciliationDetail.payorName}" filterBy="#{reconciliationDetail.payorName}" filterMatchMode="contains" filterStyleClass="hide" styleClass="ux_ui-datatable-column ux_alpha-column">  
    <f:facet name="header">
    <h:outputText value="" styleClass="ux_title_table_header_reconcile"/><br/>
    <h:outputText value="#{resourceBundle['reconciliation.payor_insured.table.column']}" styleClass="ux_title_table_header_reconcile"/><br/>
</f:facet>  
<h:panelGroup id="reconArrowTogglerLink">   
<div class="#{reconciliationDetail.parentId == 0?'ux_reconciliation_togger_icon':'ux_reconciliation_togger_icon ux_tab_style'}" onclick="reconciliationDatatable.onRowToggle(this, reconcileTable);">                                
    <p:rowToggler/>
    </div>
    </h:panelGroup>
    <h:outputText styleClass="ux_column_data_text ux_normal_text ux_reconciliation_subcriber" rendered="#{reconciliationDetail.payorName != null}" value="#{reconciliationDetail.payorName}"/>
    </p:column>

一个解决方案是当用户展开一行时,其他展开的行将触发点击事件,并将折叠

参见:如何在同一时间展开一行

在OnRowSelection中,您只需设置selectionMode="single" (Datatable的属性)