Я использую jqGrid в качестве входных данных сетки на стороне клиента, что позволяет пользователю вводить несколько записей перед отправкой всех данных сразу.
У меня проблема с тем, что если пользователь добавил несколько записей (скажем, 3), то идентификаторы для записей будут 1,2,3. если пользователь удалит запись 2, у вас останется 1 и 3 для идентификатора записи.
Когда пользователь теперь добавляет новые записи, jqGrid назначает, что снова записывает идентификатор 3, поскольку кажется, что он подсчитывает общее количество записей и увеличивает его на единицу для новой записи. Это вызывает проблемы при выборе строк, так как теперь идентификаторы строк: 1, 3 и 3.
Кто-нибудь знает, как получить доступ к идентификаторам строк записей, поскольку я, вероятно, мог бы использовать событие afterSubmit и переназначить увеличение идентификатора строки с 1. (так что после удаления идентификатора строки 2, для других идентификаторов строк устанавливается значение 1 и 2)
Любые другие предложения, чтобы решить эту проблему?
Спасибо
редактировать
Я решил это с помощью следующего кода для кнопки удаления navGrid
}).navGrid('#pager', {add:true, del:true, refresh:false, search:false},
{
...
}, ##edit parameters
{
...
}, ##add parameters
{reloadAfterSubmit:false,
clearAfterAdd:false,
afterComplete:
function () {
## clear and readd the row data so the row ids are sequential
var savedData= $("#inputgrid").jqGrid('getRowData');
$("#inputgrid").jqGrid('clearGridData');
$("#inputgrid").jqGrid('addRowData', 'rn', savedData);
}
} ##delete parameters
);
По сути, просто сохраняем данные сетки, а затем повторно добавляем их, чтобы строки снова были последовательными.
По какой-то причине номера строк внизу слева начинаются с 2 вместо единицы. Редактировать это было решено с помощью последней версии кода jqGrid в GitHub (27 апреля 2010 г.). Но я обнаружил, что эта версия jquery.fmatter.js заставляла пустые ячейки отображать «», когда вы пытались редактировать строку, поэтому мне пришлось вернуть этот файл обратно в файл в jqGrid 3.6.4.