Jsf Primefaces-数据表选择所有项目

Jsf Primefaces-数据表选择所有项目,jsf,primefaces,Jsf,Primefaces,嗨,我有一个带有延迟数据加载的datatable和一个带有选择/取消选择所有项目选项的上下文菜单。但我不知道该怎么做 <h:form> <p:contextMenu for="tableNozzleFamily"> <p:menuitem value="#{bundle.global_select_all}" icon="ui-icon-plus"/> <p:menuitem value="#{bundle.g

嗨,我有一个带有延迟数据加载的datatable和一个带有选择/取消选择所有项目选项的上下文菜单。但我不知道该怎么做

<h:form>
    <p:contextMenu for="tableNozzleFamily">  
        <p:menuitem value="#{bundle.global_select_all}" icon="ui-icon-plus"/>
        <p:menuitem value="#{bundle.global_unselect_all}" icon="ui-icon-minus"/>
    </p:contextMenu> 
    <p:dataTable id="tableNozzleFamily" var="nf" value="#{nozzleBean.lazyModel}" paginator="true" rows="20" rowsPerPageTemplate="20, 30, 50" lazy="true" emptyMessage="#{bundle.global_no_data}" selection="#{nozzleBean.selectedNozzleFamilies}">
        <p:columnGroup type="header">
            <p:row>
                <p:column rowspan="2" headerText="#{bundle.global_selection}"/>
                 ...
            </p:row>
        </p:columnGroup>
        <p:column selectionMode="multiple" style="width:18px"/>
        ...
    </p:dataTable>

...
...
我的环境: 玻璃鱼3.1.2.2 莫哈拉-2.1.11
Primefaces-3.3.1

您是否查看了Primefaces showcase?有一个例子正好如此


基于复选框的选择
#{car.model}
#{car.year}
#{汽车制造商}
#{car.color}

是的,我在primefaces show case上看到过这个例子,但这个例子并不是通过编程实现的。我认为正确的方法是在上下文菜单和服务器上下文中触发一个动作事件,然后全选,或者使用javascript全选。@AndréAndrade这没有任何意义。这是正确的方法。您可能会找到其他方法,但既然库已经为您提供了实现,为什么还要费心呢?如果您需要在服务器端执行额外的处理,可以使用ajax事件“toogleSelect”,当切换header复选框时会触发该事件,因为项目要求之一是要有一个带有select all/clear selection和一些其他选项的上下文菜单。我同意使用默认值要容易得多solution@AndréAndrade如果使用上下文菜单,则执行以下操作以取消选中全部:在bean中调用一个方法,该方法清空包含选择和更新表的属性。
<p:dataTable id="multiCars" var="car" value="#{tableBean.mediumCarsModel}" paginator="true" rows="10"  
             selection="#{tableBean.selectedCars}">  

    <f:facet name="header">  
        Checkbox Based Selection  
    </f:facet>  

    <p:column selectionMode="multiple" style="width:18px" />  

    <p:column headerText="Model">  
        #{car.model}  
    </p:column>  

    <p:column headerText="Year">  
        #{car.year}  
    </p:column>  

    <p:column headerText="Manufacturer" >  
        #{car.manufacturer}  
    </p:column>  

    <p:column headerText="Color">  
        #{car.color}  
    </p:column>  

    <f:facet name="footer">  
        <p:commandButton id="multiViewButton" value="View" icon="ui-icon-search"  
                         update=":form:displayMulti" oncomplete="multiCarDialog.show()"/>  
    </f:facet>  
</p:dataTable>