Данные столбца обновления табулятора

У меня есть таблица, настроенная с помощью Tabulator с неизвестными данными (извлеченная из файла), поэтому я не могу выполнить настройку определений столбцов, за исключением общей настройки, которая работает с любыми данными.

Теперь я в ситуации, когда мне нужно добавить определенный код для каждой строки в столбце code который включен в существующую таблицу.

я искал, чтобы добавить код что-то вроде SX0001 в первом ряду и просто добавьте 1 к каждой строке, чтобы вторая строка была похожа на SX0002

Я проверил эту ссылку http://tabulator.info/docs/4.1/update. Я видел некоторые функции, которые работают со строками, но не со столбцами.

Решение, которое я пытаюсь достичь:- ссылка включает в себя функцию updateData, что мне нужно иметь индекс со значением по умолчанию (Id)

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

table.addColumn({title:"id", field: "id" , formatter:"rownum",width:40, align:"center"} , true)

теперь я не знаю, как получить длину столбца, чтобы пройти через каждый столбец и запустить функцию, как это

var no = 1000;
var str = "SX";
var x = str + no ;

table.updateData([{id:1, code:x}]);
var no = no +1;

в любом случае, чтобы сделать это?

2 ответа

Решение

Если вы хотите посчитать данные таблицы именно для этого, getDataCount, который возвращает количество строк в таблице:

var count = table.getDataCount();

Но на самом деле ваш текущий подход приведет к перерисовке таблицы множество раз, когда вы обновляете данные строки.

Мутаторы

Вместо этого вам следует взглянуть на использование Mutator, это позволит вам изменять данные по мере их поступления в таблицу, поэтому в этом случае вы можете сделать что-то вроде этого:

//global variable to keep track of row id
var rowCount = 0;

//custom mutator
var idMutator = function(value, data, type, params, component){
  //increment rowCount and assign as column value
  return rowCount++;
}

//in your column definition set this mutator
{title:"ID", field:"id", mutatorData:idMutator}

При использовании этого подхода значение устанавливается, когда данные загружаются в таблицу, ничего не нужно перерисовывать, и весь процесс намного эффективнее.

Вы можете получить данные, хранящиеся в таблице, используя функцию getData.

var data = table.getData();

Это вернет массив, содержащий объекты данных для каждой строки в таблице.

Тогда, чтобы получить свою длину, просто сделайте data.length

Другие вопросы по тегам