2011-04-19 28 views
0

我是JSF的新手,並試圖在JSF數據表中顯示數據的子集時出現問題。 問題描述: 1.我有一個確定時代綁定到模型象下面這樣:JSF數據表工作兩組數據

<h:dataTable border="1" cellspacing="0" cellpadding="0" id="invoiceLinesUpperDt" styleClass="basic-table" value="#{pc_InvoiceCRMVUpdate.viewBean.showInvoiceLinesInError? pc_InvoiceCRMVUpdate.viewBean.invoice.invoiceLinesInError : pc_InvoiceCRMVUpdate.viewBean.invoice.invoiceLines}" var="invoiceLine"> 

我有兩個數據集之間觸發像下方的複選框:

<h:selectBooleanCheckbox id="displayOnlyLinesInErrorCb" immediate="false" value="#{pc_InvoiceCRMVUpdate.viewBean.showInvoiceLinesInError}" onclick="javascript: document.forms['invoiceCRMVUpdateForm'].submit();" valueChangeListener="#{pc_InvoiceCRMVUpdate.displayOnlyLinesInError}"/> 
  1. 當滿顯示數據列表(由pc_InvoiceCRMVUpdate.viewBean.invoice.invoiceLines返回)顯示沒有問題 - 我可以編輯並提交值並使其正確填充到數據模型中

  2. 當數據的子集(由pc_InvoiceCRMVUpdate.viewBean.invoice.invoiceLinesInError返回)顯示時出現問題。我仍然可以編輯數據,但是當我觸發回完整列表時,數據出現在錯誤的行中。例如,如果編輯的第一行子集被編輯,那麼它們出現在全套的第一行,依此類推。

  3. 在還原視圖階段調用正確的數據模型方法。所以我期望在子集中的正確位置獲取值。但我沒有得到它們。

可能是什麼問題?

在此先感謝!

羅馬。

+0

發現問題。與JSF的經驗運氣和愚蠢的錯誤。 剛剛離開FacesContext.getCurrentInstance()。renderResponse();在值更改偵聽器「#{pc_InvoiceCRMVUpdate.displayOnlyLinesInError}」中。刪除該行代碼後,一切都變得有效了! – Roman 2011-04-19 15:12:33

回答

0

發現問題。這是JSF的經驗和愚蠢的錯誤。

值變化監聽#{pc_InvoiceCRMVUpdate.displayOnlyLinesInError}內剛出FacesContext.getCurrentInstance().renderResponse();

刪除該行代碼後,一切都變得可行!