Может ли /Shall элемент в повторяемом компоненте быть обновлен?

То, что я пытаюсь сделать, - это иметь список продуктов, и у всех продуктов должна быть кнопка для увеличения их количества. Код прокомментирован внутри <p:datagrid> то есть

<!-- <p:panelGrid columns="2" cellpadding="5">
         <h:outputText value="Counter: " />
         <h:outputText id="output1" value="#{guiProduct.productQuantity}" />
     </p:panelGrid>

     <p:commandButton value="Count"
                      actionListener="#{actions.increaseProdQuantity}"
                      update="@form prodForm:allProducts:output1" /> -->

доставляет мне проблемы Я не могу найти правильный идентификатор компонента и каким-либо образом обновить его с помощью командной кнопки.

<ui:composition template="/templates/header_footer.xhtml">
<ui:define name="defaultHeader">

    <h:form id="searchFrom">
        <p:inputText id="searchBar" style="font-size:14px;font-color:grey"
            value="#{actions.searchKey}">
            <p:watermark for="searchBar" value="what you want to see ?"></p:watermark>
        </p:inputText>
        <h:commandButton id="searchButton" value="#{lbl['search']}"
            actionListener="#{actions.searchKeyword}" update="@form:allProducts"></h:commandButton>
    </h:form>

</ui:define>
<ui:define name="body">

    <!-- <pm:page id="customerListing"> -->
    <h:form id="prodForm">

        <p:dataGrid id="allProducts" var="guiProduct"
            value="#{dataGridView.allProducts}" columns="3" paginator="true"
            rows="9">
            <f:facet name="header">
                   Choose Any
            </f:facet>

            <p:panel header="#{productLbl[guiProduct.productName]}"
                style="text-align:center">
                <p:panelGrid columns="1" style="width:100%">
                    <p:graphicImage style="height:250px;width:240px;"
                        name="images/#{guiProduct.productCategory}/#{guiProduct.productId}.gif" />
                    <h:outputText value="#{productLbl[guiProduct.productName]}" />

                    <!-- <p:panelGrid columns="2" cellpadding="5">
                            <h:outputText value="Counter: " />
                            <h:outputText id="output1" value="#{guiProduct.productQuantity}" />
                        </p:panelGrid>

                        <p:commandButton value="Count"
                            actionListener="#{actions.increaseProdQuantity}"
                            update="@form prodForm:allProducts:output1" /> -->

                    <p:commandButton update="@form:productDetail"
                        oncomplete="PF('productDialog').show()" icon="ui-icon-search"
                        styleClass="ui-btn-inline">
                        <h:outputText styleClass="ui-icon ui-icon-search"
                            style="margin:0 auto;" />
                        <f:setPropertyActionListener value="#{product}"
                            target="#{dataGridView.selectedProduct}" />
                    </p:commandButton>
                </p:panelGrid>
            </p:panel>

        </p:dataGrid>

        <p:dialog header="product Info" widgetVar="productDialog"
            modal="true" showEffect="fade" hideEffect="fade" resizable="false">
            <p:outputPanel id="productDetail">
                <p:panelGrid columns="2"
                    rendered="#{not empty dataGridView.selectedProduct}"
                    styleClass="ui-product-detail">
                    <f:facet name="header">
                        <p:graphicImage
                            name="demo/images/product/#{dataGridView.selectedProduct.brand}-big.gif" />
                    </f:facet>

                    <h:outputText value="Price" />
                    <h:outputText
                        value="$#{dataGridView.selectedProduct.productPrice}" />
                </p:panelGrid>
            </p:outputPanel>
        </p:dialog>

    </h:form>

    <h:form id="incrementForm">
                        <p:panelGrid columns="2" cellpadding="5">
                            <h:outputText value="Counter: " />
                            <h:outputText id="output2" value="#{guiProduct.productQuantity}" />
                        </p:panelGrid>

                        <p:commandButton value="Count"
                            actionListener="#{actions.increaseProdQuantity}"
                            update="@form incrementForm:output2" />
                    </h:form>
    <!-- </pm:page> -->
</ui:define>

Я знаю, что такие компоненты будут генерировать идентификатор продукта, содержащий цифры :0:Мне нужен способ добиться этого. И любое предложение, если невозможно обновить итерируемые компоненты.

Я попытался создать и использовать идентификатор продукта из кода Java, и это дало мне это productListing:prodForm:allProducts:output1 но результаты были такими же.

0 ответов

Другие вопросы по тегам