jqGrid saveRow с функцией ошибки - PullRequest
2 голосов
/ 06 января 2011

Это может быть вопрос из двух частей. Первый - «что я делаю неправильно», а второй - «это правильный путь?». Во всяком случае ...

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

    table.saveRow(rowId,
                  false,
                  false,
                  optionalParams,
                  false,
                  function () { common.ShowMeSomething("error fired"); },
                  false);

Все, что делает ShowMeSomething, является предупреждением прямо сейчас, ничего страшного, но не сработает. Я зашел так далеко, что открыл источник, и это $ .extend с complete: function (res, stat) - я пытался имитировать те, которые возвращают Json (new {res = "hi", stat = false}), без удачи он шел по javascript, чтобы запустить событие ошибки. Не повезло.

Кроме того, есть ли лучший способ сделать это? Мне нужно вернуть ошибки для проверки.

Ответы [ 2 ]

1 голос
/ 10 января 2011

Проблема была в непонятной документации. В некоторых функциональных элементах грид ошибки == false и success == true, что не так. Первый параметр - это rowId, второй - успешный вызов к серверу (в основном, существует ли он и получил ли я ответ http), где то, что я ожидал, зарезервировано для полных сбоев, которых я не имел умеет создавать.

Перемещение функции к этому второму параметру и выполнение обработки ошибок из результата позволяет получить то, что я хотел - простой возврат Json (whatObject) и выполнение оттуда того, что необходимо сделать, например сброс, отображение ошибок и т. Д.

0 голосов
/ 07 января 2011

Вы не включаете код вашей jqGrid и код действия контроллера MVC, который выдает ошибку. Так что я мог только догадываться, в чем причина вашей проблемы.

Одной из причин серверной части может быть то, что вы пытаетесь вернуть ошибку как Json(...), а не изменять код состояния ответа HTTP на код ошибки. В случае ошибки вы можете установить код ответа с кодом типа HttpContext.Response.StatusCode = 500 или использовать HttpException .

Другая возможная причина на стороне клиента состоит в том, что вы пытаетесь сохранить строку, которая в настоящее время не редактируется с учетом editRow . Метод editRow устанавливает дополнительный атрибут "editable" = "1" для строки редактирования, а saveRow сохраняет только строку, имеющую этот атрибут.

Если бы вы включили больше кода клиента и сервера в текст вашего вопроса, вам лучше помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...