jqGrid локальная обработка данных; проблема с идентификаторами строк при удалении и добавлении новых строк - PullRequest
1 голос
/ 27 апреля 2010

Я использую 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.

1 Ответ

0 голосов
/ 31 мая 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...