【问题标题】:How to update outputText value based on selected checkboxes in dataTable through ajax如何通过ajax根据dataTable中选中的复选框更新outputText值
【发布时间】:2015-12-27 04:38:30
【问题描述】:

在更新outputText 时,我需要您的帮助,其中包含数据表中选定复选框的总金额字段。 jsf有以下代码:

    <p:dataTable id="PendingRequests" var="hr" selection="#{hrdirector.selectedRequests}"
             value="#{hrdirector.listPendingRequests}" rowKey="#{hr.requestNo}"
             filteredValue="#{hrdirector.filteredRequests}" widgetVar="dataTableWidgetVar">
        <p:column selectionMode="multiple" style="width:16px;text-align:center"></p:column>
        <p:column headerText="Request No.">
            <h:outputText value="#{hr.requestNo}"/>
        </p:column>
        <p:column headerText="Request Amount">
            <h:outputText value="#{hr.requestAmount}"/>
        </p:column>
    </p:dataTable>

    <h:outputText id="Sum" value="#{hr.Sum}"/>

用户将选择多个复选框,我需要知道通过 ajax 调用方法的适当方式,以使用所选的 Total Requests Amounts 更新 outputText。

要调用的方法是:

   public void ShowTotal() {


       try {

        String [] tranAmountArr = new String[selectedRequests.size()];

        for (int i = 0; i < selectedRequests.size(); i++) {

            tranAmountArr[i] = selectedRequests.get(i).getEncashmentAmount();

            Sum = Sum + Double.parseDouble(tranAmountArr[i]);

        }

        System.out.println(Sum);


    } catch (Exception e) {

        System.err.print(e);

        e.printStackTrace();

        log.error("Error in ShowTotal()");

    }


}

【问题讨论】:

  • 如果您只需要输出总和,@BalusC 是一个非常优雅的解决方案。如果您以后想要进行任何验证或其他操作,则必须添加服务器端侦听器。

标签: ajax jsf jsf-2 primefaces


【解决方案1】:

只需在表格中添加两个 Ajax 标签:

<p:ajax event="rowSelect" listener="#{hrdirector.showTotal}" 
process="@this" update="sum" /> 

还有:

<p:ajax event="rowUnselect" listener="#{hrdirector.showTotal}" 
process="@this" update="sum" /> 

注意:对于方法名称、参数、属性和 ID,请使用小写。

注意:我会将方法命名为“updateTotal”而不是“ShowTotal”。

【讨论】:

  • 感谢它的工作。但我应该使用 rowSelectCheckbox 和 rowUnselectCheckbox 来代替 rowSelect/rowUnselect
猜你喜欢
  • 2018-09-03
  • 2016-12-08
  • 2020-02-14
  • 1970-01-01
  • 2016-07-16
  • 1970-01-01
  • 2014-04-26
  • 1970-01-01
  • 2016-06-15
相关资源
最近更新 更多