2017-04-24 2 views
0

Hallo Ich habe eine Datentabelle mit einem p: rowToggler, also wenn ich ein Popup von einer Zeile expasion, nachdem ich das Popup zu schließen, ich brauche einige Etiketten in den Zeilen zu aktualisieren. Update funktioniert! aber die Reihe expandierte, kollabierte. Wie kann man nach dem Schließen des Popups die Zeilenexpansion offen halten und den Inhalt aktualisieren? Vielen Dank.Wie kann man die Zeilenexpansion in einer Tabelle aktualisieren?

Snippet von PopUp

<p:ajax event="close" update=":id1:id2" oncomplete="someJavascript()" /> 

Snippet Databable

<h:form prependId="false" id="id1"> 
      <h:panelGroup id="id2" > 
        <p:dataTable tableStyleClass="win" var="element"        id="table1" value="#{myBean.list}" 
          selectionMode="single" rowExpandMode="single" rowIndexVar="cont" widgetVar="table1" 
          selection="#{myBean.selectedRecord}" rowKey="#{element.id}" > 
<p:ajax event="rowToggle" listener="#{myBean.methodBean(element)}" /> 
        <p:column styleClass="rowTogglerStyle" 
<p:rowToggler collapseLabel="#{bundle.show}" 
expandLabel="#{bundle.show}"> 
</p:rowToggler>      
</p:column> 

</p:datatable> </h:panelGroup> </h:form> 

Antwort

0

Hallo das Problem war, dass das ausgewählte rowexpansion nach dem Pop-up schließt die Klasse ui-state-Highlights hatte noch, so fand ich, dies zu tun, um die geschlossene rowexpansion über Javascript in onclomplete atributte wieder zu öffnen, in p: ajax:

jQuery ('tr.ui-state-highlight') .find ('td.rowTogglerStyle> div.ui-row-toggler'). trigger ('click');

Ich hoffe, dass es für jemand anderen nützlich sein wird.

1

Wenn Sie Ihre erweiterten Zeilenelement-ID speichern können Sie tun es wie folgt aus:

<p:dataTable rowKey="#{element.id}" expandedRow="#{element.id == myBean.expandedRowElementId}"> 
+0

Dank @lastresort Ich versuche es. –

Verwandte Themen