当前位置: 首页 > 知识库问答 >
问题:

primefaces orderlist未使用更改的订单进行更新

段干跃
2023-03-14

我有一个primefacesp:orderList,点击按钮就会弹出。当我更改订单列表中项目的顺序,并单击弹出窗口上的“保存订单”按钮时,我没有看到带有更改顺序的列表。我的密码-

<p:commandButton ajax="true" id="toolOrderButton" value="Tool Order" onclick="toolOrderPopup.show()" type="button"/>
<p:dialog header="Tool Order" severity="alert" widgetVar="toolOrderPopup"
                        appendToBody="true">  
    <p:orderList id="toolOrderList" controlsLocation="right" value="#{toolBean.toolOrderList}" var="tool" itemLabel="#{tool}" itemValue="#{tool}" iconOnly="true"/>
    <p:commandButton ajax="true"  value="Save Order" process="@this" type="submit" actionListener="#{toolBean.setToolOrder}" oncomplete="toolOrderPopup.hide()"/>
    <p:commandButton value="Cancel" onclick="toolOrderPopup.hide()" type="button"/>   
</p:dialog>

在豆子里:

public void setToolOrder(){ 
    System.out.println("toolOrderList-" + BeanStringConverter.convertToString(toolOrderList));
}

请告诉我代码可能有什么问题。

共有1个答案

富钧
2023-03-14

您需要处理p: orderlist以保存orderList模型:

<p:commandButton ajax="true" value="Save Order" 
                 process="@this toolOrderList"
                 actionListener="#{toolBean.setToolOrder}"
                 oncomplete="toolOrderPopup.hide()"/>

与你的问题无关,你可能有这样的问题:

<h:form>
    ...
    <p:commandButton ajax="true" id="toolOrderButton" value="Tool Order" onclick="toolOrderPopup.show()" type="button"/>
    ...
    <p:dialog header="Tool Order" severity="alert" widgetVar="toolOrderPopup"
                    appendToBody="true">  
        <p:orderList id="toolOrderList" controlsLocation="right" value="#{toolBean.toolOrderList}" var="tool" itemLabel="#{tool}" itemValue="#{tool}" iconOnly="true"/>
        <p:commandButton ajax="true" value="Save Order" 
                         process="@this" 
                         actionListener="#{toolBean.setToolOrder}" 
                         oncomplete="toolOrderPopup.hide()"/>
        <p:commandButton value="Cancel" 
                         onclick="toolOrderPopup.hide()" type="button"/>   
    </p:dialog>
</h:form>

如果是这样,那么看看primefaces doc对appentToBody的看法:

小心使用appendToBody,因为页面定义和html dom会有所不同,例如,如果对话框位于h:form组件内,并且appendToBody处于启用状态,则浏览器上的对话框将位于表单之外,并可能导致意外结果。在本例中,将窗体嵌套在对话框中。

另一种结构可以是:

    <h:form id="first">
        ...
        <p:commandButton ajax="true" id="toolOrderButton" value="Tool Order" onclick="toolOrderPopup.show()" type="button"/>
        ...
    </h:form>
    <p:dialog header="Tool Order" severity="alert" widgetVar="toolOrderPopup"
                    appendToBody="true">
        <h:form id="second">
            <p:orderList id="toolOrderList" controlsLocation="right" value="#{toolBean.toolOrderList}" var="tool" itemLabel="#{tool}" itemValue="#{tool}" iconOnly="true"/>
            <p:commandButton ajax="true"  value="Save Order"
                             process="@this toolOrderList" 
                             actionListener="#{toolBean.setToolOrder}" oncomplete="toolOrderPopup.hide()"/>
            <p:commandButton value="Cancel" onclick="toolOrderPopup.hide()" type="button"/>
        </h:form> 
    </p:dialog>
</h:form>
 类似资料:
  • 问题内容: 我正在尝试使我的网站页面无缝加载。如果单击下面某些链接上的页面,您将看到我在说什么。 http://www.ultranoir.com/ http://www.itsmassive.com/ 当您单击链接时,它将加载信息,并且/#!/添加到URL。如何添加此功能,以便页面以相同的方式加载?哪里有教程? 问题答案: 这称为事件。您可以在更改后的值而无需重新加载页面,然后可以使用AJAX加

  • 我有一个表视图,每次都很好地填充, 我的主控制器: 我的测试类: 扩展测试类并覆盖其运行的Test1类: 我的aHandler: 因为tbl1绑定到Handler。getInstance()。GetData(),第一次初始化该类时,我看到列Test填充了值1,因为TestData=1;但当计时器开始更改测试数据时,表视图不会获得新的赋值。我做错了什么? 我尽我所能解释这个问题,请让我知道,如果它仍

  • 我用woocommerce做了一个简单的网店,有三种付款方式。理想情况下,可通过直接银行转账和开户。订单ID是根据付款方式创建的。例如,如果使用iDEAL付款,订单id将变为ID190100;如果以账户付款,订单id将变为RK190100。我从BeRocket的插件“WooCommerce的顺序订单号”中得到了这一点,但这些都是在付款完成之前创建的。订单ID必须在付款后才能最终确定。现在,尚未付款

  • 我需要将Woocommerce订单号从4位改为5位。我知道我可以用这个来做前缀或后缀 但是我怎样才能更改位数呢?

  • 问题内容: 我想在日期基础上更新一行。问题是,由于我的错误,我有两行相同的数据。如何仅在一行上运行更新? 问题答案: 表通常具有唯一的ID。您应该对此进行过滤。 例如, 如果您的表没有唯一的ID,请考虑添加一个:带有和的列。