jQuery jqGrid Показать сообщение после завершения редактирования строки - PullRequest
3 голосов
/ 22 июля 2011

Я следую этому уроку здесь 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 Ответ

6 голосов
/ 24 июля 2011

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

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

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, чтобы продемонстрировать как отображение состояния, так и сообщение об ошибке:

enter image description here

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

enter image description here

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

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

...