работа с локальными данными jqGrid; проблема с идентификаторами строк при удалении и добавлении новых строк

Я использую jqGrid в качестве ввода сетки на стороне клиента, позволяя пользователю вводить несколько записей, прежде чем отправлять все данные обратно одновременно.

У меня проблема: если пользователь добавил несколько записей (скажем, 3 ), идентификаторы для записей будут 1,2,3. если пользователь удалит запись 2, у вас останутся 1 и 3 для идентификаторов записей.

Когда пользователь теперь добавляет новые записи, jqGrid снова присваивает этой записи идентификатор 3, так как кажется, что он просто подсчитывает общее количество записей и увеличивает его на единицу для новой записи. Это вызывает проблемы при выборе строк, так как теперь идентификаторы строк равны 1, 3 и 3.

Кто-нибудь знает, как получить доступ к идентификаторам строк записей, поскольку я, вероятно, мог бы использовать событие afterSubmit и переназначить идентификатор строки, увеличивающийся с 1. (поэтому после того, как я удалю идентификатор строки 2, это установит другие идентификаторы строк в 1 и 2)

Любые другие предложения для решения этой проблемы?

Спасибо

edit Я решил эту проблему с помощью следующего кода для кнопки удаления 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.


person Sam    schedule 27.04.2010    source источник


Ответы (1)


Решено, как указано в разделе редактирования вопроса

person Sam    schedule 31.05.2011