Comment passer des paramètres à valueChangeListener dans p:dataTable?

Je fais appel valueChangeListener sur un <h:selectBooleanCheckbox> qui est à l'intérieur d'une dataTable. et que dataTable est de nouveau à l'intérieur de l'autre(extérieur) dataTable. Dans le valueChangeListener méthode je veux l'instance d'objet de l'objet dataTable. Est-il possible d'obtenir l'objet de l'dataTable exemple?

EX:

<h:panelGroup id="panelId">
    <p:dataTable id="outerDatatable"
                 var="supplier"
                 value="bean.supplierList">

        <p:column>
            <f:facet name="header">
                <h:outputText value="Suppliers" />
            </f:facet>
            <h:outputText value="#{supplier.name}" />
        </p:column>

        <p:column>
            <p:dataTable id="innerDataTable"
                         var="supplierAccount"
                         value="supplier.supplierAccountList">

                <p:column>
                    <h:selectBooleanCheckbox id="booleanBoxId"
                                             value="#{supplierAccount.supported}"
                                             valueChangeListener="#bean.checkBoxListener}"
                                             immediate="true"
                                             onchange="this.form.submit();"/>
                </p:column>
            </p:dataTable>
        </p:column>
    </p:dataTable>
</h:panelGroup>

J'ai trouvé la solution suivante : j'ai utilisé <p:ajax> auditeur au lieu de valueChangeListener, et j'ai pu passer de "fournisseur" de l'objet ainsi que supplierAccount objet de cette méthode d'écouteur. On peut passer n'importe quel nombre d'objets personnalisés à <p:ajax> auditeur.

<p:column>
    <h:selectBooleanCheckbox id="booleanBoxId"
                             value="#{supplierAccount.supported}"
                             immediate="true">
    </h:selectBooleanCheckbox>

    <p:ajax listener="#{bean.myListenerMethod(supplier,supplierAccount)}"
            update=":formName:panelId"/>
</p:column>

OriginalL'auteur Amruta | 2011-12-05