Редактируемые столбцы JQuery TableSorter - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть таблица HTML, которая загружается с TableSorter (версия Motties).Я хочу, чтобы иметь возможность динамически сделать содержимое в таблице редактируемой ПОСЛЕ таблиц загружен.Я предположил, что мог бы просто изменить параметры следующим образом:

var widgetOptions = $(table)[0].config.widgetOptions;
widgetOptions.editable_columns = [7, 8, 9, 10, 11, 12, 13];
widgetOptions.editable_enterToAccept = true;

Похоже, что запись параметров в консоль имеет правильную настройку:

console.log($(table)[0].config.widgetOptions);

editable_autoAccept: true
editable_autoResort: false
editable_columns: (7) [7, 8, 9, 10, 11, 12, 13]

Однако содержимое недоступно для редактирования.Если я установил editable_columns во время инициализации, то все работает как положено, однако я хочу сделать это после инициализации.

спасибо

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Чтобы это работало, мне нужно было добавить редактируемый виджет нажатием кнопки и запустить приложение applywidgets к таблице, например,

$('button').click(function() {
    $(table)[0].config.widgets = ["stickyHeaders", "output", "filter" ,"print", "editable"];

    $(table)[0].config.widgetOptions.editable_columns = editableColumns;
    $(table)[0].config.widgetOptions.editable_enterToAccept = true;
    $(table)[0].config.widgetOptions.editable_editComplete = 'editComplete';

    $(table).trigger('applyWidgets');
});
0 голосов
/ 21 февраля 2019

Чтобы сделать другой столбец редактируемым, вам нужно обновить значение editable_columns, а затем запустить обновление.Проблема заключается в том, что после редактирования столбца обновление не отключает уже редактируемые столбцы ( demo )

$(function() {

  var $table = $('#table');

  $('button').click(function() {
    $table[0].config.widgetOptions.editable_columns = [3];
    $table.trigger('update');
  });

  $table.tablesorter({
      theme: 'blue',

      widgets: ['editable'],
      widgetOptions: {
        editable_columns: [0, 1, 2],
        editable_autoAccept: true,
        editable_autoResort: false
      }
    })
    // config event variable new in v2.17.6
    .children('tbody').on('editComplete', 'td', function(event, config) {
      var $this = $(this),
        newContent = $this.text(),
        // there shouldn't be any colspans in the tbody
        cellIndex = this.cellIndex,
        // data-row-index stored in row id
        rowIndex = $this.closest('tr').attr('id');
      /*
      $.post("mysite.php", {
          "row"     : rowIndex,
          "cell"    : cellIndex,
          "content" : newContent
      });
      */
    });

});
...