问题在JSF页面更新明智总数据表使用RichFaces的datascroller时
-
25-09-2019 - |
题
我创造我的JSF页面的DataTable它显示了与列页面总值的每一行的页脚明智的。
我使用RichFaces的datascroller用于寻呼。
当我点击下页在RichFaces的datascroller我需要在该网页的总列值,来更新我的页脚现在对我来说问题
我管理由以下讨论来创建代码来计算页明智总 http://forums.sun.com/thread.jspa?threadID=5254959
当与所述数据表的负载的页面我设法正确地看到的总列在页脚。当我在相同的值遗体datascroller点击下一页。结果 例如,当总列的第一页的是5和第二页是3。
我设法正确显示5,当我点击下一页,我需要它来更新到3,但5个保持不变。
看来,当我点击datascroller下一步按钮只有DataTable的身体得到更新。是否有RichFaces的JSF或的方式,使页脚得到每点击更新?或是否有任何其他替代除了RichFaces的datascroller解决了我的问题?
我的JSF代码是
<h:dataTable id="summary" binding="#{outboundCall.summaryTable}">
</h:dataTable>
<rich:datascroller reRender="summary" for="summary" style="width:623px;font-family : Verdana;font-weight: bold;">
</rich:datascroller>
我的Java代码是
public HtmlDataTable getSummaryTable()
{
summaryTable = new HtmlDataTable();
summaryTable.setRowClasses("datatablecontent");
summaryTable.setColumnClasses("datatablecontent");
summaryTable.setHeaderClass("datatableheader");
summaryTable.setFooterClass("datatablecontent");
summaryTable.setVar("data");
summaryTable.setRows(5);
//summaryTable.setId("summaryTable");
summaryTable.setValueExpression("value", createValueExpression("#{outboundCall.summaryReports}", List.class));
summaryTable.setRendered(getDataTableRendered());
HtmlColumn column1 = getColumnDetails("Dialled Date", "#{data.dialledDate}");
HtmlOutputText footerText1 = new HtmlOutputText();
footerText1.setValue("Total");
column1.setFooter(footerText1);
summaryTable.getChildren().add(column1);
if(getStatus().equalsIgnoreCase("success") || getStatus().equalsIgnoreCase("all"))
{
System.out.println("Before footer calculation");
int subTotalPrice = 0;
for (int i = summaryTable.getFirst();
i < summaryTable.getFirst() + summaryTable.getRows() &&
i < getSummaryReports().size(); i++)
{
SummaryReportsForOutBoundCalls dataItem = getSummaryReports().get(i);
String dataItemPrice = dataItem.getSuccessCount();
subTotalPrice += Integer.parseInt(dataItemPrice);
dataItem.setTotalCallsTotal(Integer.toString(subTotalPrice));
}
setFooterTotalToDisplay(Integer.toString(subTotalPrice));
HtmlColumn column2 = getColumnDetails("Success", "#{data.successCount}");
HtmlOutputText footerText2 = new HtmlOutputText();
footerText2.setValue(subTotalPrice);
column2.setFooter(footerText2);
summaryTable.getChildren().add(column2);
}
return summaryTable;
}
这是代码哪里计算页明智总
public List<SummaryReportsForOutBoundCalls> getSummaryReports()
{
int total = 0;
//getSummaryTable();
for (int i = summaryTable.getFirst();
i < summaryTable.getFirst() + summaryTable.getRows() &&
i < summaryReports.size(); i++)
{
SummaryReportsForOutBoundCalls dataItem = summaryReports.get(i);
String dataItemPrice = dataItem.getSuccessCount();
total += Integer.parseInt(dataItemPrice);
dataItem.setTotalCallsTotal(Integer.toString(total));
}
scroller.setOncomplete("setValue('"+total+"')");
scroller.setOnclick("setValue('"+total+"')");
setFooterTotalToDisplay(Integer.toString(total));
footerText2.setValue(total);
return summaryReports;
}
请帮我解决这个
在预先感谢
解决方案
一个星期痛苦的搜索后,我发现A4J:jsFunction解决了这个问题对我来说。是否有任何其他的解决方案比这更好的?我渴望了解它。
不隶属于 StackOverflow