Табулятор, добавляющий "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}

Однако, если вы обновляете данные из удаленного источника, то нет смысла связывать это с данными в вашей таблице.

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

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