Почему не удается добавить такую же строку после удаления из сетки dojo

Я показываю некоторый контент с помощью dojo EnhancedGrid. Пользователи могут добавлять и удалять контент в/из сетки. Добавление и удаление из хранилища/сетки выполняется нормально, пока я использую уникальный идентификатор (Id здесь - только число/число, начинающееся с 1) для каждой строки/элемента, добавляемого в сетку.

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

Я использую grid.store.deleteItem(item) и grid.store.newItem(item) для удаления/добавления. Я даже вызываю grid._refresh() после deleteItem(), но это не имеет никакого значения.

Какие-либо предложения.

1 ответ

Я смог решить это, используя dojox.grid.cells.RowIndex(). Это автоматически создает новую ячейку/столбец в сетке под названием "Row", которая содержит уникальное целочисленное значение, смотрящее с 1. Когда вы удаляете одну или несколько строк из сетки, номер строки для существующих строк в сетке корректируется, чтобы отразить это change (всегда сохраняя номер строки с шагом 1), и поэтому любая новая строка, добавленная в сетку, получает следующий номер строки.

var layout = [[
 new dojox.grid.cells.RowIndex({ width: '25px' }),
 {'name': 'Type', 'field': 'type', 'width': '50px'},
 {'name': 'Description', 'field': 'desc', 'width': '200px', editable: true},
 {'name': 'Score', 'field': 'score', 'width': '37px'}
 ]];

licensed under cc by-sa 3.0 with attribution.