Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 带复选框的Primefaces树,避免在单击行的任意位置时选中/取消选中_Jsf 2_Primefaces - Fatal编程技术网

Jsf 2 带复选框的Primefaces树,避免在单击行的任意位置时选中/取消选中

Jsf 2 带复选框的Primefaces树,避免在单击行的任意位置时选中/取消选中,jsf-2,primefaces,Jsf 2,Primefaces,Primefaces提供 这是一个很好的适合,除了“点击行上任何地方”的行为不是我要找的。我需要行上的其他按钮和内容。您可以通过jQuery覆盖树节点标签上的单击事件来禁用选择,如下所示: jQuery(".ui-treenode-label").click(function(){ return false; }); 确保每次通过ajax呈现或更新树时都运行该脚本。您需要覆盖Primefaces Javascript for treeTable。在页面上放置以下内容应禁用Primeface

Primefaces提供


这是一个很好的适合,除了“点击行上任何地方”的行为不是我要找的。我需要行上的其他按钮和内容。

您可以通过jQuery覆盖树节点标签上的单击事件来禁用选择,如下所示:

jQuery(".ui-treenode-label").click(function(){
  return false;
});

确保每次通过ajax呈现或更新树时都运行该脚本。

您需要覆盖Primefaces Javascript for treeTable。在页面上放置以下内容应禁用Primefaces 3.5的此功能:

PrimeFaces.widget.TreeTable.prototype.bindSelectionEvents = function() {
    var $this = this,
    rowSelector = this.jqId + ' .ui-treetable-data tr.ui-treetable-selectable-node';

    $(document).off('mouseover.treeTable mouseout.treeTable click.treeTable', rowSelector)
                .on('mouseover.treeTable', rowSelector, null, function(e) {
                    var element = $(this);
                    if(!element.hasClass('ui-state-highlight')) {
                        element.addClass('ui-state-hover');

                        if($this.isCheckboxSelection()) {
                            element.find('> td:first-child > div.ui-chkbox > div.ui-chkbox-box').addClass('ui-state-hover');
                        }
                    }
                })
                .on('mouseout.treeTable', rowSelector, null, function(e) {
                    var element = $(this);
                    if(!element.hasClass('ui-state-highlight')) {
                        element.removeClass('ui-state-hover');

                        if($this.isCheckboxSelection()) {
                            element.find('> td:first-child > div.ui-chkbox > div.ui-chkbox-box').removeClass('ui-state-hover');
                        }
                    }
                })
                .on('click.treeTable', rowSelector, null, function(e) {
                    // $this.onRowClick(e, $(this));  <-- commenting this out disables row selection
                    e.preventDefault();
                });

    if(this.isCheckboxSelection()) {
       var checkboxSelector = this.jqId + ' .ui-treetable-data tr.ui-treetable-selectable-node td:first-child div.ui-chkbox-box';
       $(document).off('click.treeTable', checkboxSelector)
                  .on('click.treeTable', checkboxSelector, null, function(e) {
                      var node = $(this).closest('tr.ui-treetable-selectable-node');
                      $this.toggleCheckboxNode(node);
                  });
    }
};
PrimeFaces.widget.TreeTable.prototype.bindSelectionEvents=function(){
var$this=这个,
rowSelector=this.jqId+'.ui树表数据tr.ui-treetable-selective-node';
$(文档).off('mouseover.treeTable mouseout.treeTable click.treeTable',行选择器)
.on('mouseover.treeTable',行选择器,null,函数(e){
var元素=$(此);
if(!element.hasClass('ui-state-highlight')){
元素addClass('ui-state-hover');
if($this.isCheckboxSelection()){
元素.find('>td:first-child>div.ui-chkbox>div.ui-chkbox-box').addClass('ui-state-hover');
}
}
})
.on('mouseout.treeTable',行选择器,null,函数(e){
var元素=$(此);
if(!element.hasClass('ui-state-highlight')){
removeClass('ui-state-hover');
if($this.isCheckboxSelection()){
元素.find('>td:first child>div.ui-chkbox>div.ui-chkbox-box').removeClass('ui-state-hover');
}
}
})
.on('click.treeTable',行选择器,null,函数(e){

//$this.onRowClick(e,$(this));嗨,谢谢你的建议。它对我不起作用。