Можете ли вы использовать jqGrid в ASP.net, используя веб-сервис и JavaScript? - PullRequest
0 голосов
/ 30 июня 2010

jqGrid пинает мою задницу (как и другие на этом сайте).Я не могу получить данные JSON от веб-службы для загрузки в jqGrid при использовании метода addJSONData.

Кто-нибудь знает, возможно ли это сделать?Я не использую MVC, а просто веб-сервис WebProject в ASP.NET 3.5.

Я использую последнюю версию jqGrid 3.5.

Я не знаю, что делать.В настоящее время я пытаюсь загрузить только 1 строку, в которой я возвращаю строку в моем WS следующим образом:

"Page:1,Total:1,Records:1,Rows:[name: Jeff V title: Programmer]"

, которая затем передается в мой JavaScript как: {"d": "Страница: 1, Всего: 1, записей: 1, строк: [имя: Джефф Ваккаро название: программист] "}

Мой код jQuery следующий:

    jQuery(document).ready(function () {
    jQuery("#list").jqGrid({
        datatype: processrequest,
        mtype: 'POST',
        colNames: ['Name', 'Title'],
        colModel: [
      { name: 'name', index: 'name', width: 55 },
      { name: 'title', index: 'title', width: 90 }
      ],
        pager: jQuery('#pager'),
        rowNum: 10,
        rowList: [10, 20, 30],
        sortname: 'id',
        sortorder: "desc",
        viewrecords: true,
        imgpath: 'themes/basic/images',
        caption: 'My first grid'
    });
});


function processrequest(postdata) {
    $(".loading").show();
    $.ajax({
        type: "POST",
        data: "{}",
        datatype: "clientside",
        url: "../webServices/myTestWS.asmx/testMethod",
        contentType: "application/json; charset-utf-8",
        complete: function (jsondata, stat) {
            if (stat == "success") {
                jQuery("#list")[0].addJSONData(eval("(" + jsondata.responseText + ")"));
                $(".loading").hide();
            } else {
                $(".loading").hide();
                alert("Error with AJAX callback");
            }
        }
    });
}

Я пробовал все виды разныхварианты кода addJSONData.Кто-нибудь знает, возможно ли это сделать?

Любая помощь приветствуется!

Спасибо

1 Ответ

3 голосов
/ 30 июня 2010

Прежде всего ваш веб-сервис должен возвращать экземпляр класса со свойствами page, total, records, rows и так далее.Если веб-метод имеет атрибут [ScriptMethod (ResponseFormat = ResponseFormat.Json)], экземпляр класса будет правильно преобразован в данные JSON.

Вы можете использовать параметр ajaxGridOptions: { contentType: 'application/json; charset=utf-8' } и jsonReader (см. http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data#json_data) для загрузки данных вjqGrid. Информация из Jqgrid 3.7 не отображает строки в Internet Explorer и . Лучший способ изменить jqGrid rowNum со ALL на -1 перед передачей в веб-службу может быть полезен для вас.

В конце imgpath больше не поддерживается в версии 3.5 jqGrid.

...