我需要您的帮助,使用dataTable中所选复选框的总金额字段更新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()");
}
}
答案 0 :(得分:0)
只需在表格中添加两个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”。