如何在handontable中选中所有复选框

How to select all checkbox in handsontable

本文关键字:复选框 handontable      更新时间:2023-09-26

有人知道如何通过选中特定行的第一个复选框来选择(选中)手可接触行中的所有复选框吗。我尝试了所有可能的选择来完成它,但我无论如何都做不到。

这是代码,

  function getCarData() {
    return [
      { available: true,available2: true,available3: true, comesInBlack: 'yes'},
      {available: false,available2: true,available3: true,available3: true, comesInBlack: 'yes'},
      { available: true,available2: true,available3: true, comesInBlack: 'no'},
      {available: false,available2: true,available3: true, comesInBlack: 'yes'},
      { available: false,available2: true,available3: true, comesInBlack: 'no'}
    ];
  }
  var example1 = document.getElementById('example1'),
    hot1;
  hot1 = new Handsontable(example1, {
    data: getCarData(),
    colHeaders: ['Available','Available2','Available3'],
    columns: [
      {
        data: 'available',
        type: 'checkbox'
      },{
        data: 'available2',
        type: 'checkbox'
      },{
        data: 'available3',
        type: 'checkbox'
      }
    ]
  });

这是jsfiddle链接jsfiddle.net/mq5on8qf

您可以添加一个afterChange事件,该事件检查第一列的更改,如果是,则将该行中列的值设置为新值。下面是这样一个事件的实现:

afterChange: function (changes, source) {
    var change = changes[0]; // [row, prop, oldVal, newVal]
    var row = change[0];
    var data = this.getData(); // reference to data object
    var newVal = change[3];
    var col = change[1];
    // conditional on first row
    if (col === 'available') {
        data[row].available2 = newVal;
        data[row].available3 = newVal;
    }
    this.render(); // render after making changes to data
}

这是你的小提琴。