jqgrid не будет загружать данные json - PullRequest
1 голос
/ 05 марта 2012

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

json data:

{
    "page": "1",
    "total": 1,
    "records": "12",
    "rows": [
        [
            "67",
            "3 - Sandbox: Appointment Set"
        ],
        [
            "68",
            "1 - Sandbox: Email requested"
        ],
        [
            "69",
            "2 - Sandbox: Questions not answered"
        ],
        [
            "74",
            "1 - TenPointSix: Email requested for more information"
        ],
        [
            "75",
            "2 - TenPointSix: Registered for webinar2"
        ],
        [
            "76",
            "3 - TenPointSix: Webinar registration confirmed"
        ],
        [
            "93",
            "5-Test Entry"
        ],
        [
            "94",
            "test3"
        ],
        [
            "95",
            "test2"
        ],
        [
            "97",
            "Jeff"
        ],
        [
            "103",
            "sortorder"
        ],
        [
            "106",
            "reload"
        ]
    ]
}

Мой код сетки:

<table id="jsonmap"></table>
<div id="pjmap"></div>       

    <script language="JavaScript" type="text/javascript">


 jQuery("#jsonmap").jqGrid({        
    url:'sampleLoad.php?client=<?=$clientId5?>',
    datatype: "json",
        ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
    colNames:['Inv No','Name'],
    colModel:[
        {name:'id',index:'id', width:55},
        {name:'name',index:'name', width:100}

    ],
    rowNum:15,
    rowList:[15,30,45],
    pager: '#pjmap',
    sortname: 'id',

    viewrecords: true,
    sortorder: "asc",
    jsonReader: {
        root: "Rows",
        cell: "",
        page: "Page",
        total: "Total",
        records: "Records",
        repeatitems: false,
        id: "0"
    },
    loadComplete: function() {

        alert("Load Complete");
    },
    loadError: function(xhr,st,err) { $("#jsonmapMessage").html("Type: "+st+"; Response: "+ xhr.status + " "+xhr.statusText); },



    caption: "JSON Mapping",
        width: '900',
                height: '300'

});


jQuery("#jsonmap").jqGrid('navGrid','#pjmap',{edit:true,add:false,del:false});

Любая помощь будет оценена.

Спасибо,

Джефф

1 Ответ

2 голосов
/ 05 марта 2012

Проблема не в том jsonReader, который вы используете. Например, вы используете rows в данных JSON, но используете root: "Rows". Формат данных соответствует свойству repeatitems: true по умолчанию, но вы использовали repeatitems: false и т. Д.

Правильным jsonReader является

jsonReader: {
    cell: "",
    id: "0"
}

Кроме того, я бы рекомендовал вам добавить gridview: true и использовать height: 'auto' вместо height: '300', что упрощает настройку height.

Демо показывает модификации.

...