jqGrid вызывает WebService (asmx) с использованием json - PullRequest
1 голос
/ 05 августа 2010

У меня есть настройка jqGrid для публикации по URL-адресу с использованием типа содержимого application / json:

$("#jqCategoryGrid").jqGrid({
    datatype: "json",
    mtype: 'POST',        
    url: "Webservices/TroubleTicketCategory.asmx/getCategoryData",
    ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
    // **UPDATE - This is the fix, as per Oleg's response**
    serializeGridData: function (postData) {
        if (postData.searchField === undefined) postData.searchField = null;
        if (postData.searchString === undefined) postData.searchString = null;
        if (postData.searchOper === undefined) postData.searchOper = null;
        //if (postData.filters === undefined) postData.filters = null;
        return JSON.stringify(postData);
    },
});

Проблема заключается в том, что jqGrid все еще пытается передать параметры, используя не-jsonформат, поэтому я получаю сообщение об ошибке "Invalid JSON Primitive"

Есть ли способ указать jqGrid для сериализации данных с использованием Json?

Спасибо

ОБНОВЛЕНИЕ

Я отредактировал предоставленный исходный код в своем вопросе, чтобы включить в него исправление, которое я использовал из ответа Олега ниже.

1 Ответ

2 голосов
/ 05 августа 2010

Вы должны включить JSON-сериализацию опубликованных данных, например, в отношении json2.js, которую можно загрузить с http://www.json.org/js.html:

serializeRowData: function (data) { return JSON.stringify(data); }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...