How to access parent of dataTable in dataTable?

Consider the dummy case:

<h:form id="wrapperForm">
    <h:panelGroup id="rowsContainer">
        <h:dataTable id="rowsTable" value="#{bean.rows}" var="row" >
            <h:column>
                <h:commandButton value="Click me to update (#{component.parent.parent.parent.clientId})">
                    <f:ajax render=":#{component.parent.parent.parent.clientId}" />
                </h:commandButton>
            </h:column>
        </h:dataTable>
    </h:panelGroup>
</h:form>

When a button is pressed, the button is id=rowsContainersuccessfully updated, as it should be.

However, if I add ui:repeatthere, it no longer works:

<h:form id="wrapperForm">
    <ui:repeat id="blocksRepeat" var="block" value="#{bean.blocks}">
        <h:panelGroup id="rowsWrapper">
            <h:dataTable id="rowsTable" value="#{block.rows}" var="row" >
                <h:column>
                    <h:commandButton value="Click me 2 update (#{component.parent.parent.parent.clientId})">
                        <f:ajax render=":#{component.parent.parent.parent.clientId}" />
                    </h:commandButton>
                </h:column>
            </h:dataTable>
        </h:panelGroup>
    </ui:repeat>
</h:form>

Instead, it turns out:

<f:ajax> contains an unknown id ':wrapperForm:blocksRepeat:0:rowsWrapper' - cannot locate it in the context of the component j_idt363

However, this component does exist with this ID, so EL should be fine. Somehow ui:repeatbreaks the case. Is it possible to try to evaluate EL before the actual cycle?

How do you feel about an element rowsWrapperfrom inside a dataTable?

. dataTable ui: repeat, . , dataTable PanelGroup, .

+5
1

:

1) ui: repeat

BalusC , ( ) - Mojarra. , ui:repeat , , h:dataTable, . . " h: dataTable ui: repeat ID?" .

BalusC, h: dataTable ui:repeat. (<table>) HTML, . / .

. , ui:repeat, , Mojarra 2.0.3, .

2)

h:dataTable h:dataTable . ui:repeat , datatable. , .

+3

All Articles