Можно ли заставить JqGrid отправлять JSON QueryString на сервер? - PullRequest
0 голосов
/ 09 октября 2009

Можно ли указать jqGrid отправлять все параметры поиска в формате JSON? Поэтому мне не придется переформатировать его на серверной стороне.

Ответы [ 2 ]

1 голос
/ 02 ноября 2009

Я не знаю, насколько это будет полезно, но я обнаружил, что могу возвращать true здесь, пока я установил свой editurl в '#' ....

beforeSubmit: функция (postdata, formid) {

                    if (isValid) {
                        $.ajax({
                            type: "POST",
                            async: false,
                            contentType: "application/json; charset=utf-8",
                            url: "/RateIQ/Main.aspx/Accessorial/AccessorialDetailSave",
                            data: JSON.stringify(postdata),
                            dataType: "json"
                        });
                    }
                    return [isValid, ""]; 

} и до сих пор у меня не было побочных эффектов ...

1 голос
/ 09 октября 2009

Прямой функции, подобной той, которая упомянута в документации, нет, поэтому вам, вероятно, придется понимать это вручную в методе beforeSubmit jqGrid. Я бы спонтанно использовал jQuerys serializeArray метод для формы и JSON Serializer . Затем вам нужно будет отправить сериализованную форму через Ajax. Просто убедитесь, что вы возвращаете success: false, чтобы jqGrid не отправлял форму.

beforeSubmit : function(postdata, formid) {
    var formarray = $('#' + formid).serializeArray();
    var httpbody = JSON.stringify(formarray);
    // Send accordingly via AJAX
    $.ajax(...);
    // This looks kind of weird, but we don't want jqgrid to continue cause it was sent already
    return { success : false, message : "Successffully saved" };
} 

Хотя это и не самое лучшее решение, но, возможно, событие beforeSubmit - единственное место, где можно в нем разобраться.

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