1

我正在尝试使用 JSF 和 PrimeFaces 开发计费应用程序。基本功能需要在账单中添加多个项目,并在账单完成后单击更新按钮。打印的账单必须包含诸如 BillId 之类的详细信息,它是在支持 bean 的 setBill 方法结束时生成的。需要在一页中完成,以便在打印后,应用程序准备好接收新账单。

我开发如下,但打印和执行该方法没有按预期发生。

 <p:commandButton value="Settle" action="#{billController.saveSelected()}" ajax="false" >
     <p:printer target="pDetails"  /> 
 </p:commandButton>

当我不使用 Ajax 时,打印部分可以,但不执行操作。与 Ajax 一起使用时,会执行命令,但打印不起作用。我使用了一个动作监听器而不是动作,仍然是相同的结果。

<p:commandButton value="Settle" actionListener="#{billController.settleBill}" ajax="false" >
    <p:printer target="pDetails"  /> 
</p:commandButton>

如何在执行支持 bean 方法的同时获取具有最终值的打印输出,例如 Bill Id,它是在支持 bean 方法完全执行后生成的。我想在一个页面中实现它,以便在每张账单之后屏幕准备好下一张账单。

提前致谢。

4

2 回答 2

1

当您在没有 Ajax 的情况下使用时,要使打印和操作正常工作,您必须使用以下代码:

<p:commandButton value="Settle" actionListener="#{billController.settleBill}">
<f:ajax execute="@this"/>
    <p:printer target="pDetails"  /> 
  </p:commandButton>

并在 setBill 方法中使用 ActionEvent 声明它,如下所示:

public void settleBill (ActionEvent actionevent) {}
于 2014-05-21T15:18:11.907 回答
0
<p:remoteCommand name="rc"  actionListener="#{movimentoBean.test}" />

           <p:commandButton value="Imprimir" type="button" 
              icon="ui-icon-print" onclick="rc();PF('visDialog').hide()"
              style="display:block;margin-bottom: 20px">
              <p:printer target=":formMovimentos:etiqueta" />
           </p:commandButton>

公共无效测试(ActionEvent actionevent){}

于 2014-08-08T00:50:54.077 回答