Данные столбца обновления табулятора
У меня есть таблица, настроенная с помощью 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