JSF와 PrimeFaces로 제품 가격을 추가/편집하기위한 양식을 개발 중입니다. 단일 제품은 볼륨에 따라 여러 가격을 가질 수 있으며, 이는 <p:dataTable>
으로 표시됩니다. 양식의 유효성을 검사하지 않고 p : dataTable에 동적으로 새 행을 추가하는 방법은 무엇입니까?
@ManagedBean
@ViewScoped
public class ProductBean {
protected Product product;
protected List<ProductPrice> productPrices;
public void addNewPrice() {
ProductPrice productPrice = new ProductPrice();
productPrice.setPrice(new BigDecimal(0));
this.productPrices.add(productPrice);
}
// ...
}
Facelet 페이지 :
<h:form id="productForm">
<p:inputText value="#{productBean.product.name}" required="true">
<f:ajax event="blur" render="nameMessage" />
</p:inputText>
<p:message id="nameMessage" for="name" />
<p:dataTable id="pricesList" ...>
</p:dataTable>
<p:commandButton value="Add another price" update="pricesList" action="#{productBean.addNewPrice()}" />
<p:commandButton value="Submit" action="#{productBean.submit}" />
</h:form>
가 어떻게해야 무엇 첫 번째 단추를 않습니다 "다른 가격을 추가": 새 행을 추가로 "pricesList ". 그러나 양식이 유효한 경우에만 (양식이 유효하지 않음, 제품 이름이 설정되지 않은 경우).
제 문제는 양식에 두 개의 commandButton이 있다는 것입니다.하지만 commandButton없이 원하는 기능을 얻는 방법을 모르겠습니다. 나는 많은 방법을 시도했다 : ajax 기능을 가진 표준 <p:button>
에 "다른 가격 추가"변경; 버튼의 결과로 인해 작동하지 않습니다. 나는이 버튼에 대해 "type = button"을 시도했지만이 경우에는 아무 일도 일어나지 않습니다.
내가 원하는 기능을 수행하기위한 제안이 있습니까? 내 문제를 해결하는 버튼이 필요하지 않습니다.
그게 다예요, 고마워요! –
반갑습니다. – BalusC