Editierbare Datentabelle mit einem Dialog in JSF 2.0

stimmen
1

Ich bin derzeit meine Web-Anwendung in JSF 2.0 ausgeführt wird, wird es auch mit Primefaces 2.2RC2.

Ich weiß, dass primefaces gibt Ihnen die Möglichkeit editierbare Reihen haben, aber für mein Projekt würde ich es vorziehen, wenn ein Benutzer auf ein Command innerhalb der Tabelle klickt, dass ein Dialog mit, dass bestimmte Zeilen Werte vorbelegt wird angezeigt und der Benutzer kann die Zeile auf diese Weise bearbeiten .

Die einzige Art, wie ich dies bekommen haben ist zu arbeiten, um in der Spalte, die auf den Befehl enthält, passiert, dass Zeilen Inhalt als params wie im folgende Beispiel:

<p:dataTable var=car value=#{myBean.cars} id=carList>  
   <h:column>
         <h:inputText value=#{car.id} style=width:100%/> 
   </h:column>

   <h:column>
        <h:inputText value=#{car.name} style=width:100%/> 
   </h:column>
   <h:column>
        <h:commandButton actionListener=#{myBean.updateRow} onsuccess=editCardDialog.show() >
           <f:param name=carId value=#{car.id} />
           <f:param name=carName value=#{car.name} />
        </h:commandButton>
    </h:column>

    ...
</p:dataTable>

Also meine Frage ist, derzeit die einzige Art, wie ich dies an der Arbeit bekommen habe, ist in meinem Backing Bean Dummy temporäre globale Variablen erstellen, um die params zu setzen, um so, wenn mein Dialog öffnet, kann er die Werte wie diese Referenz

     //myBean.java
     private String tempCarId;
     private String tempCarName;

     public void setTempCarId(String tempCarId) {
          this.tempCarId = carId;
     }

     public String getTempCarId() {
          return tempCarId;
     }

     public void setTempCarName(String tempCarName) {
          this.tempCarName = carName;
     }

     public String getTempCarName() {
          return tempCarName;
     }

     public void updateRow(ActionEvent event) {

            String carId = FaceContext...getParameterMap(carId);
            String carName = FacesContext...getParameterMap(carName);

            setTempCarId(carId);
            setTempCarName(carName);      
     }

Dann im Dialog werde ich Referenz nur diese temporären Variablen

    <p:dialog>
        <h:inputText value=#{myBean.tempCarId} />
        <h:inputText value=#{myBean.tempCarName} />
    </p:dialog>

Ich bin nicht sicher, ob dies der richtige Weg, es zu tun ist. Mein Bauchgefühl sagt mir, es ist nicht, weil es extrem überflüssig scheint temporäre Variablen in meinem Bean haben zu erstellen, damit ich sie in den Dialog übergeben. Kennt jemand eine besseren prägnante Weise, dies zu tun so dont Ich habe eine Million temporären Variablen in meinem Backing Bean erstellen?

Veröffentlicht am 14/01/2011 um 09:55
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

Beantwortet am 14/01/2011 um 12:23
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more