jqGrid - кнопки Default Add/Edit - Обработка Ответа Сервера

ГЛАВНАЯ ПРИЧИНА повторно выдавания исключения состоит в том, чтобы оставить Стек вызовов нетронутым, таким образом, можно получить больше полного изображения того, что происходит и называет последовательность.

14
задан Peter Mortensen 19 January 2010 в 17:56
поделиться

2 ответа

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

API -> http://www.trirand.com/jqgridwiki /doku.php?id=wiki:form_editing#editgridrow

использование параметров события для afterSubmit и afterComplete позволяет мне обработать ответ сервера и обновить форму.

- Дэн

EDIT Вот пример используемого кода ...

.navGrid(
        "#product-codes-footer",
        {edit:true,add:true,del:false}, 
        {
            afterShowForm:afterShowEdit, 
            afterSubmit:processAddEdit,
            beforeSubmit:validateData,
            closeAfterAdd: true,
            closeAfterEdit: true
        }, 
        {
            afterShowForm:afterShowAdd, 
            afterSubmit:processAddEdit,
            beforeSubmit:validateData,
            closeAfterAdd: true,
            closeAfterEdit: true
        } 
);
function afterShowEdit(formId) {

            //do stuff after the form is rendered
        }
        function afterShowAdd(formId) {

            //do stuff after the form is rendered
        }
        function processAddEdit(response, postdata) {
            var success = true;
            var message = ""
            var json = eval('(' + response.responseText + ')');
            if(json.errors) {
                success = false;
                for(i=0; i < json.errors.length; i++) {
                    message += json.errors[i] + '<br/>';
                }
            }
            var new_id = "1";
            return [success,message,new_id];
        }
15
ответ дан 1 December 2019 в 13:34
поделиться

Я видел несколько способов сделать это:

 jQuery("#search_results").jqGrid({
        url: host,
        datatype: "xml", 
        mtype: "GET", // Handy to see the params passed.
        height: 200,
        width: 500,
...
...
etc
        gridComplete: function() {
          var ids = jQuery("#search_results").getDataIDs();
          if (ids.length Empty Result');
          }   
          else {
              $('#jqgrid_error').hide();
          }   
        },  
        loadError: function(xhr,st,err) {
          jQuery("#jqgrid_error").html("Type: "+  
                   st +"; Response: "+ xhr.status + " "+xhr.statusText+'');
     }   
     }).navGrid('#search_results_pager',
        {edit:true,add:false,del:false,search:true},
        {
          afterComplete:processed, // processed is a function you define
          closeAfterEdit: true,
          reloadAfterSubmit:true
        }   
     );  

Из документации:

afterComplete Это событие срабатывает сразу после завершения всех действий и событий. и строка вставляется или обновляется в сетке. afterComplete (serverResponse, postdata, formid), где

  • response - это данные, возвращаемые сервером (если есть)
  • postdata массив, это данные, отправленные в сервер
  • formid - это идентификатор формы

gridComplete Это срабатывает после загрузки всех данных в сетку и всех остальных процессы завершены.

loadError xhr, st, err Функция, вызываемая в случае сбоя запроса. Функция передается три аргумента: объект XMLHttpRequest (XHR), строка с описанием типа возникшей ошибки (st) и необязательным объект исключения (ошибка), если он произошел.

Имеются удобные / полезные документы PDF (немного устаревшие): http://www.scribd.com/doc/17094846/jqGrid .

2
ответ дан 1 December 2019 в 13:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: