Сообщить об ошибках пользователя в jQGrid - PullRequest
2 голосов
/ 02 ноября 2009

У меня есть таблица jqgrid, которая запрашивает СУБД MySQL через веб-сервер apache2 через XML.

Иногда, когда сервер БД выключается или серверная программа сталкивается некоторые сбои jqgrid просто зависает в ожидании поступления данных XML.

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

Мне было интересно, есть ли какая-либо опция jqgrid, специфичная для такой ситуации

Я использую:

jquery-1.3.2
jquery-ui-1.7.2
jquery.jqGrid-3.5.3

Спасибо

Ответы [ 3 ]

1 голос
/ 10 декабря 2009

Я ответил на аналогичный вопрос, касающийся сообщения об ошибках (на стороне сервера) с помощью jqgrid.

Как мне заставить JQGrid распознавать отправленные сервером ошибки?

1 голос
/ 02 декабря 2009

Если для jqgrid вы используете тип данных function с jQuery.agax, поместите свою логику в обработчик ошибок. Единственная проблема заключается в том, что вам нужно заполнить сетку вручную, и вы не получите подсказку «Загрузка», хотя вы можете ее создать.

Этот образец взят из обычного шаблона, который я использую при вызове служб ASP.NET WCF, мой объект результатов содержит свойства int для пейджера и коллекцию строк, это определено в myGrid.setGridParams.

datatype: function(postdata) {
   $.ajax({
      type: "POST",
      url: 'SomeService.svc/SomeGetMethod',
      data: JSON.stringify(postdata),
      dataType: "json",
      contentType: "application/json; charset=utf-8",
      success: function(res) {
         myGrid.clearGridData();
         for (var i = 0; i < res.d.rows.length; i++) {
            myGrid.addRowData(i + 1, res.d.rows[i]);
         }
         myGrid.setGridParam({
            page: postdata.page,
            lastpage: res.d.total,
            records: res.d.records,
            total: res.d.total
         });
         myGrid.each(function() {
            if (this.grid) this.updatepager();
         });
      },
      error: function (XMLHttpRequest, textStatus, errorThrown) {
         // Code to handle error.
      }
   });
},
0 голосов
/ 07 февраля 2011

Вы можете использовать событие loadError в определении jqGrid (см. документацию ). E.g.:

//Catch errors
loadError = function(xhr, textStatus, errorThrown)  {
    var error_msg = xhr.responseText        
    var msg = "Some errors occurred during processing:"
    msg += '\n\n' + error_msg
    alert(msg)
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...