Табулятор, добавляющий "numrow" после извлечения данных
У меня есть таблица неизвестных данных (некоторые столбцы и строки), я нахожусь в точке, где мне нужно использовать функцию table.updateData()
который требует столбца id
существовать в структуре данных, которую я не могу гарантировать, поскольку данные извлекаются из неизвестного источника.
Есть ли способ обойти это или есть альтернативный способ обновления данных позже?
- PS Я использую только ванильный JavaScript, а не JQuery
1 ответ
Должен быть уникальный набор индексов для каждой строки данных, чтобы Tabulator знал, к какой строке вы хотите обратиться.
Вы можете установить это для любого поля столбца в данных строки, используя опцию индекса в конструкторе таблицы.
var table = new Tabulator("#example-table", {
index:"age", //set the index field to the "age" field.
});
По умолчанию это установлено в поле id
Если вы хотите установить это локально, вы можете использовать мутатор для создания значения в этом поле для вас:
//define variable to count index's to ensure they are unique
var index = 0;
//define custom mutator
var idMutator = function(value, data, type, params, component){
//value - original value of the cell
//data - the data for the row
//type - the type of mutation occurring (data|edit)
//params - the mutatorParams object from the column definition
//component - when the "type" argument is "edit", this contains the cell component for the edited cell, otherwise it is the column component for the column
return index++; //return the index for the row.
}
//column definition
{field:"id", mutator:idMutator, visible:false}
Однако, если вы обновляете данные из удаленного источника, то нет смысла связывать это с данными в вашей таблице.
Обычной практикой является включение в данные такого рода индекса или уникального идентификатора, чтобы обеспечить синхронизацию между клиентом и сервером.