【问题标题】:Primefaces datatable with checkbox selection ONLY仅带有复选框选择的 Primefaces 数据表
【发布时间】:2013-02-28 06:30:06
【问题描述】:

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

但是,当用户单击一行时,之前的所有选择都将被取消选择,并且仅选择该行。 这种行为出乎意料且令人讨厌。 我想禁用 rowSelect 和 rowUnselect 在行单击时的行为,但似乎我没有办法,只能破解 datatable.js 的来源。

以前有人实施过吗?感谢您的回答。

使用:

primefaces 3.5

mojarra 2.1.6

玻璃鱼 3.1.2.2

【问题讨论】:

  • 提供您的代码。这样我们就可以找到其中的错误或逻辑错误。
  • 这里他的代码并不重要,因为showcase itself 中也发生了同样的问题。它似乎只有复选框而不是单选按钮。我也想获得与 OP 提到的相同的行为。有人解决了吗?

标签: jsf primefaces


【解决方案1】:

根据feature request,Primefaces 版本 5.0.35.1 现在支持此功能,只需将 rowSelectMode="checkbox" 添加到数据表即可。

文档参考(PF 5.1):

使用 rowSelectMode 选项自定义行的默认行为 单击启用多项选择的数据表。默认值为 “新”清除以前的选择,“添加”模式保留以前的选择 选择与元键打开时通过鼠标单击选择行相同 “复选框”模式只允许使用复选框进行行选择。

【讨论】:

  • 谢谢,对我帮助很大
【解决方案2】:

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

$(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)。

【讨论】:

  • 与其将其标记下来,我应该指出,上面的代码仍然会影响相同的问题,但会将其本地化到一个单元格。
猜你喜欢
  • 2012-08-16
  • 2012-08-30
  • 2014-10-14
  • 2013-10-29
  • 2017-10-02
  • 2015-05-22
  • 2021-06-06
  • 2017-10-07
  • 1970-01-01
相关资源
最近更新 更多