如何更新包含f:ajax with change event(JSF)的h:panelGroup?

时间:2016-10-05 17:09:35

标签: javascript ajax jsf render

我正在使用JSF 2.2进行仓库管理。仓库有很多箱子,每个箱子都有很多产品。每箱的产品总数必须分别保存在其包装箱中,所有箱子的产品总数必须保存在仓库中。

我正在尝试下一个代码,用户写入仓库的数量。当用户在myBean.warehouse.numBox系统实例上写入框列表和每个框的产品列表时。系统更新pg_ProductsEachBox panelGroup

pg_ProductsEachBox中,系统product.quantity中的每个值都会更新每个箱子和仓库的总呼叫数量myBean.updateQuantities

我的问题是,当用户在myBean.warehoyse.numBox中写入并且系统更新pg_ProductsEachBox<f:ajax event="change" listener="#{myBean.updateQuantities}" execute="product_#{box.idBox}" render="pg_ProductsEachBox"/>已激活并启动alertjavascript)下一条消息:serverError: class javax.faces.FacesException Invalid search product_1 expression product_1 doesn't exist引用product_#{box.idBox}

谢谢!

<h:panelGroup id="pg_NumBox">
    <b:inputText type="number" required="true" value="#{myBean.warehouse.numBox}">
        <f:ajax event="change" listener="#{myBean.updateListBoxesAndListProducts}" execute="pg_NumBox" render="pg_ProductsEachBox"/>
    </b:inputText>
</h:panelGroup>


<h:panelGroup id="pg_ProductsEachBox">
    <b:inputText type="number" required="true" value="#{myBean.warehouse.TotalProductsAllBoxes}" readonly="true"/>
    <ui:repeat value="#{myBean.listBoxes}" var="box">
        <b:inputText type="number" required="true" value="#{box.quantity}" readonly="true"/>
        <ui:repeat value="#{myBean.listProductsForBox(box.idBox)}" var="product">
            <h:panelGroup id="product_#{box.idBox}">
                <b:inputText type="number" required="true" value="#{product.quantity}">
                    <f:ajax event="change" listener="#{myBean.updateQuantities}" execute="product_#{box.idBox}" render="pg_ProductsEachBox"/>
                </b:inputText>
            </h:panelGroup>
        </ui:repeat>
    </ui:repeat>
</h:panelGroup>

0 个答案:

没有答案