Может ли /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
но результаты были такими же.