2012-03-01 79 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