2010-08-04 3 views
1

JSF 페이지에서 열의 바닥 글을 총계로 표시하는 바닥 글을 현명한 페이지로 보여줍니다.RichFaces datascroller를 사용할 때 JSF 데이터 테이블의 총 페이지 수를 업데이트하는 데 문제가 있습니다.

페이징을 위해 Richfaces datascroller를 사용하고 있습니다.

내가 나를 위해 해당 페이지에서 열 값의 합계, 지금 문제가 내 바닥 글을 업데이트해야 datascroller richfaces에서 다음 페이지를 클릭 난에 의해 페이지 현명한 합계를 계산하는 코드를 작성하는 관리 이 토론을 따르는 것 http://forums.sun.com/thread.jspa?threadID=5254959

데이터 테이블로드가있는 페이지에서 머리글의 열이 올바르게 표시 될 때. datascroller에서 다음 페이지를 클릭하면 같은 값이 유지됩니다. 예를 들어
첫 페이지의 열 합계가 5 일 때 두 번째 페이지는 나는 내가 3으로 업데이트해야 다음 페이지를 클릭 할 때, 정확하게 5를 보여 관리 3.

이지만, 5 명 남아 변하지 않은.

datascroller에서 다음 버튼을 클릭 할 때 데이터 테이블 본문 만 업데이트되는 것처럼 보입니다. 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> 

내 자바 코드이 내가

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;    
} 

날이

를 해결하기 위해 도와주세요

총 현명한 페이지를 계산하는 코드입니다

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; 
} 

입니다

감사합니다. 사전에

+0

jsf 코드의 전체 코드를 게시 할 수 있습니까? – Dejell

+0

늦어서 죄송합니다. 나는 너를 정확히 알 수 없었다. 어느 부분을 JSP 또는 Java로 사용 하시겠습니까? – mvg

+0

asp.net에는 바닥 글을 업데이트하는 속성이 있습니다 http://forums.asp.net/t/1512760.aspx JSF에서 이와 비슷한 방법이 있습니까? – mvg

답변

1

일주일 동안 괴로운 검색을 한 후 a4j : jsFunction이 문제를 해결했습니다. 이보다 다른 솔루션이 더 있습니까? 나는 그것에 대해 알고 싶어합니다.