jQuery jqGrid Показать сообщение после завершения редактирования строки

Я следую этому руководству здесь http://www.trirand.com/blog/jqgrid/jqgrid.html в LiveDataManipulation->EditRow.

Моя сетка получает данные из скрипта a.php, После того, как пользователь может изменить эти данные с помощью jqGrid. jqGrid после модификации данных отправит данные в скрипт B.php которые обновляют мою базу данных и возвращают ответное сообщение типа "все идет хорошо".
Я хочу, чтобы этот ответ был предупрежден или показан пользователю где-то на странице.
Читая учебник и здесь http://www.trirand.com/jqgridwiki/doku.php?id=wiki:form_editing Я думаю, что я должен использовать afterSubmit вариант, но я не понял, как распечатать на панели редактирования результат.

Я написал:

$("#editImpresa").click(function(){
var gr = jQuery("#tabImprese").jqGrid('getGridParam','selrow');
if( gr != null ) jQuery("#tabImprese").jqGrid('editGridRow',gr,{
    height:690,
    width:500,
    closeAfterEdit : true,
    reloadAfterSubmit:false,
    afterSubmit: function(response,postdata){ 
       if(response.responseText=="ok")
            success=true;
        else success = false;

        return [success,response.responseText] 
    }
});

Как мне это сделать? Благодарю.

1 ответ

Решение

Прежде всего вариант closeAfterEdit:true следует до закрытия формы редактирования после успешного ответа сервера. Вы должны изменить настройку на значение по умолчанию closeAfterEdit:false иметь возможность показать что угодно.

Далее я бы порекомендовал вам использовать панель инструментов навигатора вместо создания кнопки после сетки. В случае, если вы можете использовать

var grid = jQuery("#tabImprese");
grid.jqGrid('navGrid','#pager', {add:false,del:false,search:false}, prmEdit);

Еще один хороший вариант - это использовать ondblClickRow обработчик события

ondblClickRow: function(rowid) {
    $(this).jqGrid('editGridRow',rowid,prmEdit);
}

(см. здесь) или в обе стороны одновременно.

В любом случае вы должны определить параметры метода editGridRow (prmEdit). Важно знать, что afterSubmit будет вызываться, только если ответ сервера не содержит код ошибки HTTP. Поэтому вы должны использовать errorTextFormat для декодирования ответа сервера ошибок. Обработчик события afterSubmit, который вы можете использовать для отображения сообщения о состоянии.

В демоверсии я использовал только errorTextFormat продемонстрировать как отображение статуса, так и сообщение об ошибке:

Статусное сообщение исчезнет через 3 секунды:

Соответствующую демонстрацию вы найдете здесь.

В реальном примере вы будете помещать сообщение о состоянии написания кода в обработчик события afterSubmit и код, который возвращает сообщение об ошибке в errorTextFormat.

Другие вопросы по тегам