Frage

Ich habe eine JSF Datentabelle mit einem Bündel von Zeilen, wobei jede Zeile eine selectOneMenu mit in der es wie folgt aus:

    <h:form 
      <h:dataTable id="myTable"
        binding="#{myBean.dataTable}"
        value="#{myBean.dataTableRows}" var="row"
        first="0" rows="0" dir="LTR" frame="hsides" rules="all">

        <h:column>
          <f:facet name="header">
            <h:outputText value="Sample Name" />
          </f:facet>
          <h:outputText value="#{row.sampleName}" />
        </h:column>

        <h:column>
          <f:facet name="header">
            <h:outputText value="Role" />
          </f:facet>
          <h:selectOneMenu value="#{row.role}"
            id="roleInput">
            <f:selectItems value="#{myBean.allRoles}" />
          </h:selectOneMenu>
        </h:column>

      </h:dataTable>

      <h:commandButton value="Save" action="#{myBean.save}" />
    </h:form>

Allerdings kann ich nicht scheinen, um herauszufinden, wie die ausgewählte Rolle in dem Verfahren speichert aus jeder Zeile erhalten. Mit anderen Worten, ich möchte jede Zeile den Wert speichern. Ich habe diesen Artikel, die erläutern, wie ein Texteingabefeld speichern:

http://balusc.blogspot.com/2006/06 /using-datatables.html#EditableDatatable

, aber es scheint nicht zu dem h anzuwenden: selectOneMenu Fall. Hat jemand einen Beispiel-Code, der dies tut?

Danke!

War es hilfreich?

Lösung

Ich sehe Ihr Tisch zu Ihrem Bean zu binden. In Ihrem Bean können Sie den GetDataTable () -Methode verwenden und darauf zuzugreifen. Java doc sagt:

public Object getRowData()

Return the data object representing the data for the currently selected row index, if any.

Also, wenn Sie tun, um Ihren Code wie:

List<String> selectedRowData = (List<String>) getDataTable().getRowData()

Sie können dann alle Felder Zugriff der Benutzer ausgewählt hat. Im mit diesem in meinem eigenen Projekt und seine Arbeiten. Der einzige Unterschied ist, dass Im Casting auf meine eigene Art statt List<String>

Andere Tipps

Es gibt keine offensichtlichen Fehler in der Form - wenn Ihre Speichermethode nicht aufgerufen wird, versuchen Sie ein Nachrichten Tag zu Ihrer Form, um die Quelle des Problems aufzuspüren. Es würde helfen, wenn Sie ein Beispiel-Bean geschrieben, die das Problem und geben Sie die JSF-Implementierung und Version Sie verwenden.

reproduziert
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top