Announcement

Collapse
No announcement yet.

inputText in einer dataTable

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • inputText in einer dataTable

    Hallo allerseits ...

    .. ich habe in einer dataTable, die eine Anzahl von Daten darstellt u.a. auch je Zeile eine inputText-Komponente eingefuegt. Die in der Tabelle darzustellenden Daten werden als Array geliefert. Die Anzahl der angezeigten Daten und somit auch der inputText-Elemente kann je nach Aufruf unterschiedlich sein.

    Die getter/setter fuer die von den Eingabefeldern dargestellten und veraenderlichen Daten habe ich entsprechend angepasst - d.h. ein interner Index zaehlt mit und so werden jeweils die richtigen Daten an die inputText geliefert - und sollten rein theoretisch auch wieder korrekt von dort uebernommen werden.

    Nun .. die Darstellung funktioniert wie 'geplant': die Daten werden korrekt abgefragt und dargestellt. Nur beim Absenden des Formulars habe ich festgestellt, dass die setter fuer die Daten der inputText-Komponenten gar nicht aufgerufen wird - sprich die Daten werden nie von den inputText-Elementen wieder zurueck gegeben.

    Aehnlich verhaelt es sich anscheinend mit einem commandButton ... der uebergebene actionListener wird nicht angesprungen.

    Unterdrueckt die umschliessende dataTable evtl. einige Aufrufe?

    Nun frage ich mich, woran das liegt bzw. ob/wie man das aendern kann. Vielleicht hat jemand schon aehnliche Erfahrungen gemacht und kann mir weiterhelfen?

    Vielen Dank im Voraus

  • #2
    Hallo Oliver,

    Ich weiß nicht genau wie Du Deine Tabelle aufgebaut hast. Aber die dataTable ist ja dafür gedacht, zeilenweisen Zugriff auf die Elemente zu ermöglichen. Wenn also das value-Attribut eine List (oder Array) mit den Datenobjekten liefert, dann werden die Daten der Eingabefelder innerhalb der dataTable automatisch in das richtige Element (am entsprechenden Index) geschrieben. Man kann anstatt einer List auch ein ListDataModel zurückgeben. Das ist ganz praktisch, wenn z.b. in jeder Zeile ein Button ist und man feststellen will, welcher gedrückt wurde (DataModel.getRowData etc.). Es sollte nicht notwendig sein, selbst einen Index mitzuzählen.

    Gruß,

    Alwi

    Comment


    • #3
      Hallo,

      ... das Problem, dass die Eingaben nicht uebernommen wurden bzw. der ActionListener nicht auf den Button-Klick reagiert hat, lag natuerlich nicht an der dataTable.

      Dies hatte zwei Gruende, zum einen hatte ich fuer die managed Bean der Seite den Scope Request eingestellt ... und die Datenstrukturen innerhalb der managed Bean waren nicht korrekt aufgebaut, als die Daten aus dem Request (also aus den Komponenten der JSP-Seite) uebernommen werden sollten.

      Zum anderen (und teilweise daraus resultierend) waren die Bedingungen fuer die rendered-Eigenschaften der Elemente zum Zeitpunkt der Datenuebername bzw. des Anspringens des ActionListeners nicht erfuellt. Die Daten waren allerdings im Request korrekt abgelegt.

      Der Einsatz eines DataModels ist sicherlich eine interessante Alternative, die ich demnaechst einmal ausprobieren werde.

      Danke, viele Gruesse

      Olive

      Comment

      Working...
      X