set itemDisabled aus backing-bean-Methode für jedes Element in der Liste
Ich habe eine radiobutton-Liste und möchten, deaktivieren Sie einige Elemente, die gemäß dem Ergebnis einer backing-bean-Methode.
<h:selectOneRadio value="#{managedBean.selectedItem}">
<f:selectItems value="#{managedBean.selectItems}"
var="x"
itemDisabled="#{managedBean.checkIncompatible(x)}" />
</h:selectOneRadio>
Ist das der richtige Weg, es zu tun? Bedeutung, wird dieser code nennen checkIncompatible(x)
für jeden x
von der selectItems
Liste und legen Sie das Element als aktiviert/deaktiviert oder nur einmal und das war ' s?
Ich nur geschafft, alle Schaltflächen entweder aktiviert oder deaktiviert werden und mein Verdacht ist, dass die Methode wird nur einmal aufgerufen. Oder dass der rest von meinem code ist nicht so perfekt, wie ich gerne glauben. Und das würde einen sehr viel mehr in Frage zu stellen, zu beheben.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann ich nicht reproduzieren das problem auf Mojarra 2.1.4 mit der folgenden Ansicht:
sowie die folgende bean:
Obigen Beispiel korrekt deaktiviert Element
two
.So, dein problem wird dadurch verursacht, vielleicht an anderer Stelle durch einen bug in
checkUncompatible()
Methode. Einen Haltepunkt auf die Methode lehrt mich, dass es sich definitiv aufgerufen, für jedes Element.