удалить selectedRow в handsontable с помощью jQuery - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть handsontable, как на картинке ниже.После выбора любой из строк (например, LastName) он должен удалить эту конкретную строку навсегда.Как я могу добиться этого с помощью jQuery?

enter image description here

Это мой код, который я написал с использованием функции afterSelection, но я не знаю, какудалить эту строку.

this.tab.handsontable({
  data: self.data,
  dataSchema: {
    columnsexpo: null,
    placeholder: null
  },
  colHeaders: ['Columns Export'],
  rowHeaders: true,
  fixedColumns: true,
  fillHandle: {

    autoInsertRow: false,
  },
  columnSorting: true,
  columns: [{
    data: 'columnsexpo',
    readOnly: true
  }, ],
  stretchH: 'all',
  className: "htCenter",
  height: 420,
  afterChange: function() {},
  beforeRemoveRow: function(row, col) {
    var m = this.getDataAtCell(row, 0);
    var mandatory = true;
    self.MandatoryFields.forEach(function(item) {
      if (!_.isEmpty(m)) {
        var found = m.toLowerCase().includes(item.toLowerCase());
        if (found) {
          mandatory = false;
        }
      }
    });
    if (!mandatory) {
      return false
    } else
      return true;
  },
  afterSelection: function(r, c) {
    var da = this.getDataAtRow(r);
    selectedRow = "";
    selectedRow = da[0];
    console.log(selectedRow);
  },
  afterRender: function() {
    if (init) {
      Events.trigger("DEW:ValidRequest", 1, self.checkValid());
    }
    init = true;
    $('#tablesortable thead th div').filter(function() {
      return $(this).text() == "Columns Export";
    }).popup({
      title: 'Columns Export',
      position: 'top center'
    });
  }
});

РЕДАКТИРОВАТЬ

afterSelection: function(r,c,e){

            var dat = this.getDataAtRow(r)

            this.alter('remove_row', r, 1);
            console.log(r);

          },

Теперь после применения вышеуказанной функции она удаляет выбранную строку, но если я выбираю последнюю строку,удаляет все ранее выбранные строки

1 Ответ

0 голосов
/ 28 декабря 2018

используйте hot.alter('remove_row', 10, 2); внутри после выбора метода handsontable.

Нет необходимости в jquery.

Или, если вы хотите использовать jquery, сохраните экземпляр handsontable в некоторой переменной и вызовите то же самое при выборе строки.

Update - добавлен deselectCell перед удалением строки.после удаления строки выделяется предыдущая строка, что вызывает проблему.

afterSelection: function(r, c, e) {
    this.deselectCell()
    this.alter('remove_row', r, 1);
  }
...