2012-03-01 80 views
0

我正在使用PF 3.1.1,JSF 2.0。從JSF ajax更新數據表

我有一個selectBooleanCheckBox列的數據表。當用戶選擇我希望複選框被選中的行時,並且當用戶選中該複選框時,應該選擇該行。

我在selectBooleanCheckBox上做了一個ajax調用,它更新了backing bean中的selectionArray,但結果沒有顯示在屏幕上。

這裏是代碼 -

<p:dataTable id="mylist" value="#{myController.selectedLists}" 
             selection="#{myController.myArray}" 
             selectionMode="multiple" 
             var="item" 
             rows="5" 
             rowKey="#{item.id}" 
             sortBy="#{item.name}" 
             sortOrder="ascending" 
             > 
           <p:ajax event="rowSelect" 
             listener="#{myController.onSelectList}" 
             update="mylist"/> 
           <p:column style="width: 20px;" id="gs"> 
            <h:selectBooleanCheckbox id="booId" 
                  value="#{item.booVal}"> 
             <f:ajax execute="@this" 
               listener="#{myController.booValListener}" 
               render="mylist"/> 
             <f:attribute name="item" value="#{item}" /> 
            </h:selectBooleanCheckbox> 
           </p:column> </p:datatable> 

任何幫助是極大的讚賞。

回答

0

複選框/單選按鈕選擇方法不適用於您?查看該功能的展示演示:http://www.primefaces.org/showcase-labs/ui/datatableRowSelectionRadioCheckbox.jsf

現在到您的問題:在過去,我有問題更新ajax請求後的數據表。除非他們自primefaces 3.0以來已經解決了這個問題,否則不可能直接更新數據表,您必須在其周圍包裝一個panelGroup並更新panelGroup。例如:

<h:panelGroup id="panel"> 
    <p:dataTable id="mylist" value="#{myController.selectedLists}" 
            selection="#{myController.myArray}" 
            selectionMode="multiple" 
            var="item" 
            rows="5" 
            rowKey="#{item.id}" 
            sortBy="#{item.name}" 
            sortOrder="ascending" 
            > 
      <p:ajax event="rowSelect" 
            listener="#{myController.onSelectList}" 
            update="panel"/> 
      ... 
    </p:dataTable> 
</h:panelGroup> 

試試看看它是怎麼回事。

+0

感謝您的建議,如果我在數據表中有rowSelectListener,那麼複選框選擇不起作用。這就是我使用selectBooleanCheckbox的原因。 – goodprg 2012-03-02 03:10:48

+0

夠公平的。我在編輯我的答案,給我一個鏡頭。 – Andre 2012-03-02 11:56:49

+0

再次感謝。其實我試圖從沒有更新屬性的JSF AJAX事件更新數據表。我做了 goodprg 2012-03-02 15:44:25