Primefaces数据表仅限复选框选择

时间:2013-02-28 06:30:06

标签: jsf primefaces

在我的项目中,我使用数据表与<p:column selectionMode="multiple" /> 这样就可以使用复选框多次选择条目。

但是,当用户单击某行时,将取消选择所有先前的选择,并且仅选择该行。 这种行为是意外和恼人的。 我想在行单击时禁用rowSelect和rowUnselect的行为,但似乎我无法做到但是攻击了datatable.js的源。

有没有人以前实现过这个?谢谢你回答。

使用:

primefaces 3.5

mojarra 2.1.6

glassfish 3.1.2.2

2 个答案:

答案 0 :(得分:14)

根据此feature request,Primefaces版本 5.0.3 &amp;只需添加rowSelectMode =&#34;复选框&#34; 5.1 到数据表。

文档参考(PF 5.1):

  

使用rowSelectMode选项自定义行上的默认行为   单击启用多选的数据表。默认值是   &#34;新&#34;清除以前的选择,&#34;添加&#34;模式保持先前   选项与在启用metakey时通过鼠标单击选择行相同   和&#34;复选框&#34;模式允许仅使用复选框进行行选择。

答案 1 :(得分:0)

将它放在您的页面中,可能有助于在单击一行时停止选择。

$(document).ready(
    function() {
        $("tr td").click(function(event) {
            if (!$(this).find("div").hasClass("ui-chkbox") 
                  || $(this).find("div").find("div").hasClass("ui-state-disabled")
                  || this == event.target) {
                event.stopPropagation();
        }
    });
});

单击复选框外的复选框列本身时,需要最后一个条件(this == event.target)。