2016-03-20 19 views
0

Ich habe ein Szenario, wie ich Zelle bearbeiten in Datentabelle verwenden werde. Ich habe zwei Zellen Ich habe erste Zelle 2. Zellwert Editierbare ist muss, indem Sie einige arithmetischen Operationen am 1. Zelleneingabe angezeigt werden (zB:. 2. Zellwert = (1. Zellenwert) * 14So aktualisieren Sie Zellen dynamisch in Primefaces-Daten Tabelle

Mein Code ist wie

<p:dataTable id="cars2" var="car" value="#{dtEditView.cars2}" editable="true" editMode="cell" widgetVar="cellCars">. 

<p:ajax event="cellEdit" listener="#{dtEditView.onCellEdit}" update=":form:msgs" /> 

     <p:column headerText="Cell 1"> 
       <p:cellEditor> 
        <f:facet name="output"><h:outputText value="#{car.id}" /></f:facet> 
        <f:facet name="input"><p:inputText id="modelInput" value="#{car.id}" style="width:96%"/> 
<p:ajax event="keyup" listener="#{car.yearupdate}" update="2:3"></p:ajax></f:facet> 
       </p:cellEditor> 
      </p:column> 
      <p:column id="2" headerText="Cell 2"> 

       <f:facet name="output"><h:outputText id="3" value="#{car.year}" /></f:facet> 

     </p:column> 

</p:dataTable> 

ich den Java-Code für Listener-Methode Code wissen wollen, die zweite Zelle Wert

Antwort

0

In xhtml aktualisieren wir die Hörer anrufen müssen (p: ajax-Tag).

in bean die anderen Spaltendaten in der Masse aktualisieren (alle Datensätze Suche iterieren und Update Wertfür alle recs corressponding) .. xhtml Code wie

<p:dataTable id="listDetails" value="${managedBean.searchList}" var="row"> 
 
    
 
    <p:ajax event="rowEdit" listener="#{managedBean.onRowEdit}" 
 
\t \t \t \t \t \t \t \t update=":managedBean:messages" /> 
 
<p:ajax event="rowEditCancel" listener="#{managedBean.onRowCancel}" update=":managedBean:messages" /> 
 
    
 
    <p:column priority="17" 
 
\t \t \t \t \t \t \t \t headerText="col 1" 
 
\t \t \t \t \t \t \t \t styleClass="wrap text-right" style="width: 140px;"> 
 
\t \t \t \t \t \t \t \t <p:cellEditor> 
 
\t \t \t \t \t \t \t \t \t <f:facet name="output"> 
 
\t \t \t \t \t \t \t \t \t \t <h:outputText value="#{row.val1}" /> 
 
\t \t \t \t \t \t \t \t \t </f:facet> 
 
\t \t \t \t \t \t \t \t \t <f:facet name="input"> 
 
\t \t \t \t \t \t \t \t \t \t <p:inputText id="modelInput" value="#{row.val1}" 
 
\t \t \t \t \t \t \t \t \t \t \t <p:ajax event="blur" listener="#{managed.valueUpdate}" 
 
\t \t \t \t \t \t \t \t \t \t \t \t update="tempValue></p:ajax> 
 
\t \t \t \t \t \t \t \t \t \t </p:inputText> 
 
\t \t \t \t \t \t \t \t \t </f:facet> 
 
\t \t \t \t \t \t \t \t </p:cellEditor> 
 
\t \t \t \t \t \t \t </p:column> 
 

 
<p:column priority="2" \t headerText="Col 2" \t exportable="true"> 
 
\t <p:cellEditor> 
 
\t \t <f:facet name="output"> 
 
\t \t \t <h:outputText id="value" value="#{row.value}" /> 
 
\t \t </f:facet> 
 
\t \t <f:facet name="input"> 
 
\t \t \t <h:outputText id="tempValue" value="#{row.tempValue}" /> 
 
\t \t </f:facet> 
 
\t </p:cellEditor> 
 
</p:column> 
 

 
    \t \t \t \t \t \t \t

in Bean

public void valueUpdate() {

for (BO bo : searchList) { 
     if(bo.val1!=null) 
     { 
     bo.value = bo.val1+50; // here u can do calc and assihn to the 
     bo.tempValue=bo.value; 
     } 
    } 

}
Verwandte Themen