jqGrid пуст с вызовом JSON - PullRequest
       0

jqGrid пуст с вызовом JSON

0 голосов
/ 24 февраля 2012

Мой jqGrid становится пустым с вызовом JSON. Хотя он работает с datatype = 'jsonstring', но не с типом json. вот мой JSON

{
    "d": {
        "total": 6,
        "page": 1,
        "records": 6,
        "rows": [
            {
                "id": 1,
                "Name": "James",
                "EMPID": "0000000056",
                "EMPDATE": "",
                "JOBTYPE": "REQ",
                "DEPTID": "FIN",
                "STATUS": "P1"
            },
            {
                "id": 2,
                "Name": "James",
                "EMPID": "R2",
                "EMPDATE": "",
                "JOBTYPE": "REQ",
                "DEPTID": "FIN",
                "STATUS": "P1"
            },
            {
                "id": 3,
                "Name": "James",
                "EMPID": "V2",
                "EMPDATE": "",
                "JOBTYPE": "VOU",
                "DEPTID": "FIN",
                "STATUS": ""
            },
            {
                "id": 4,
                "Name": "James",
                "EMPID": "V1",
                "EMPDATE": "",
                "JOBTYPE": "VOU",
                "DEPTID": "FIN",
                "STATUS": ""
            },
            {
                "id": 5,
                "Name": "James",
                "EMPID": "009017",
                "EMPDATE": "",
                "JOBTYPE": "PY",
                "DEPTID": "",
                "STATUS": "V2"
            },
            {
                "id": 6,
                "Name": "James",
                "EMPID": "009018",
                "EMPDATE": "",
                "JOBTYPE": "PY",
                "DEPTID": "",
                "STATUS": "V1"
            }
        ]
    }
}

и мой jqGrid-вызов из javascript

function getgrid()
    {

    $("#list").jqGrid({
     url:'http://10.240.26.41/GetGridFields',
    datatype: 'json',
    mtype: 'GET',
    ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
    //serializeGridData: function (postData) {
    //    return JSON.stringify(postData);
    //     },
    jsonReader: { repeatitems: false, root: "d.rows", page: "d.page", total: "d.total",   records: "d.records" },
    colModel: [
        { name: 'id', key: true, width: 60, align: "center", hidden: false },
        { name: 'Name', width: 80, sortable: false, hidden: false },
        { name: 'EMPID', width: 180, sortable: false, hidden: false },
        { name: 'EMPDATE', width: 180, sortable: false, hidden: false },

        { name: 'JOBTYPE', width: 180, sortable: false, hidden: false },
        { name: 'DEPTID', width: 180, sortable: false, hidden: false },
        { name: 'STATUS', width: 180, sortable: false, hidden: false }
    ],
    rowNum: 10,
    rowList: [10, 20, 300],
    pager: "#pager",
    viewrecords: true,
    gridview: true,
    rownumbers: true,
    height: 230,
    caption: 'Emp Detail'
    })

    }

Пожалуйста, дайте мне знать, где я не прав. Работает нормально с jsonstring.

Ответы [ 2 ]

0 голосов
/ 28 февраля 2012

Как вы можете видеть на демонстрационную версию , в которой ваша jqGrid может читать ваши данные JSON.Я сделал в демоверсии только минимальные изменения оптимизации, которые не важны для вашей основной проблемы.

Так что я полагаю, что у вас либо проблема с использованием полного URL (вы должны использовать '/GetGridFields' вместо'http://10.240.26.41/GetGridFields') потому что вы не можете получить Ajax-вызов на другой IP-хост из-за той же политики происхождения .Еще одна возможная причина - неправильный 'Content-Type' или какой-либо другой заголовок HTTP.Вы можете изучить HTTP-заголовки в отношении Fiddler , Firebug или просто с помощью инструментов разработчика IE или Chrome (см. Вкладку «Сеть»).Я бы порекомендовал вам включить обработчик loadError в jqGrid.Подробнее см. в ответе .

0 голосов
/ 24 февраля 2012

Я предлагаю вам проверить свой результат json, используя jslint , поскольку использование jsonstring может быть проблемой типа формата

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