Announcement

Collapse
No announcement yet.

Kinder von eigenen Komponenten

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

  • Kinder von eigenen Komponenten

    Hallo,

    ich verzweifel gerade und benötige dringend Hilfe. Ich habe eine Komponente geschrieben, die wie folgt benutzt werden kann.

    <x:mycomponent columns="2" value="#{bean.items}" var="item">
    <h:graphicImage url="#{item.url}"/>
    <h:selectBooleanChechbox .../>
    </x;mycomponent>

    Die Komponente soll also Bilder darstellen, die man mit einer Selectbox zur weiteren Verarbeitung selektieren soll. Da die Bilder nicht nur Zeilenweise angeordnet sein sollen (wie in der dataTable) habe ich mir eine Komponente geschrieben, die ihre Kinder in eine TabellenZELLE rendert. Dazu habe ich in encodeBegin() der Komponente den Tabellenkopf gerendert und iteriere dann über die Liste der Items. Für jedes Item starte ich eine neue Zelle (<td>) und eventuell eine neue Zeile ruffe dann encodeChildren(), um daran anschließend die Zelle (und Zeile) zu beenden.

    In encodeChildren() iteriere ich über die Kinder und rufe für sie encodeBegin(), encodeChildren() und encodeEnd() auf.

    Das Ergebnis sieht genau so aus, wie ich es gewollt habe. Nur wenn ich jetzt die Checkbox eines Bildes auswähle und eine Aktion ausführe, ist danach jede Checkbox aller Bilder ausgewählt.

    Ich erkläre mir das so, dass mein Komponentenbaum auf Serverseite tatsächlich ja auch nur eine Checkbox beinhaltet. Ich denke, ich müsste selbst mehr erzeugen. Vielleicht indem das Tag ein BodyTag wird.

    Ich kriegs nicht hin. Kann mir hier jemand sagen wie ich es anstellen kann?

    Gruß, Tobias

  • #2
    ... wenn ich mein Tag von UIComponentBodyTag ableite spielt es keine Rolle was ich in doStartTag zurückgebe: Ich komme niemals in doInitBody() oder doAfterBody(). Dabei hätte ich gedacht, dass das der richtige Weg sei, den Componenttree zu bauen

    Comment

    Working...
    X