Подсетка jqgrid показывает старые данные, даже когда данные строки обновляются

Я реализовал jqgrid с подсеткой для своих данных. У меня есть пользовательские реализованные функции редактирования строки и сохранения новых данных, а при сохранении данных я также обновляю новые данные в своей базе данных. После успешного сохранения я использовал функцию "setRowData" для установки новых данных в строке. Это работает, но когда я закрываю subgrid и снова расширяю, сетка показывает старые данные. может ли кто-нибудь дать мне решение

Мой код

 $.ajax({
        url: DomainName + "Report/UpdateClockInOutTime",
        type: "get",
        data: { ClockId: ClockId, ClockInTime: ClockInTime, ClockOutTime: ClockOutTime },
        success: function (result) {
            if (result == "True") {        
                var rowId = nRow.attr('id');
                var rowData = $("#" + TableId).jqGrid('getRowData', rowId);
                rowData.Working_Hr = diff;
                rowData.ClockIn = ClockInTime;
                rowData.ClockOut = ClockOutTime;
                rowData.edit = '<a href="#modal-3" id="hrfEditClockInOut_timestamp" class="btn" role="button" data-toggle="modal"><i class="icon-edit"></i></a>';

               $("#" + TableId).jqGrid('setRowData', rowId, rowData);                                              
            }
            else {
                alert("Time not updated")
            }

        }
    })

person Abhijit Pandya    schedule 22.04.2015    source источник
comment
Вы не опубликовали код, показывающий, как вы создаете jqGrid и подсетку. Код, который вы публикуете, почти не дает информации, которая могла бы помочь решить вашу основную проблему. Кроме того, мне совершенно непонятно, почему вы не используете стандартные функции редактирования jqGrid, такие как встроенное редактирование или редактирование формы. Он автоматически отправит изменения на сервер (в параметр editurl jqGrid) и обновит локальные данные. Вам не нужно делать какой-либо отдельный Ajax-запрос к серверу.   -  person Oleg    schedule 22.04.2015


Ответы (1)


Попробуйте обновить jqGrid, используя -

("#" + TableId).trigger('reloadGrid');
person Waqar    schedule 22.04.2015
comment
я уже делаю это. но не работает при повторном расширении подсетки - person Abhijit Pandya; 22.04.2015
comment
Если вы используете подсетку, возможно, вы используете неправильный идентификатор, попробуйте следующее: - person Waqar; 22.04.2015
comment
var thegrid = $(# + subGridID + _t). - person Waqar; 22.04.2015
comment
я получаю правильный идентификатор подсетки. для этого я делаю - person Abhijit Pandya; 22.04.2015
comment
var nRow = $(this).closest(td).closest(tr); var TableId = nRow.closest('table').attr('id'); - person Abhijit Pandya; 22.04.2015
comment
в предупреждении я получаю tblEmployeeReport_1_t - person Abhijit Pandya; 22.04.2015