0

次の形式でJSONを返すサーバーがあります。

[{"Name": "Student1", "Email": "Email1", "CellPhone": null},
{{"Name": "Student2", "Email": "Email2", "CellPhone": null}]

HTMLファイルには次のものがあります。 <table id="list1></table> <div id="pager1"></div>

JSファイルは次のとおりです。

jQuery()。ready(function(){
    jQuery( "#list2")。jqGrid({
        url:'Default.aspx?query = SELECT VALUE s FROM ModelContainer.StudentSet AS s WHERE s.Name = \'Student2 \''、
        データ型: "json"、
        colNames:['Name'、'Email']、
        colModel:[
            {名前:'名前'、インデックス:'名前'、幅:200}、
            {名前:'メール'、インデックス:'メール'、幅:500}
        ]、
        rowNum:10
        rowList:[10、20、30]、
        ポケットベル:'#pager1'、
        sortname:'名前'、
        viewrecords:true、
        sortorder: "desc"、
        キャプション:「JSONの例」、
        jsonReader:{
            repeatitems:true、
            id: "0"、
            セル: ""、
            //根: ""、
            レコード:関数(obj){
                obj.lengthを返します。
            }
        }
    });
    jQuery( "#list1")。jqGrid('navGrid'、'#pager1'、{edit:false、add:false、del:false});
});

私のJSONはすでに必要なデータのルートであるため、root列をどうするかわかりません。私はrootについて何も書かないで試しました、またはroot: ""、どちらも出力を持っていません。しかし、firebugは、JSONが正しく受信されていることを示しています。

これがルートと関係があるかどうかはわかりません。なにか提案を?

4

2 に答える 2

3

使用できます

jsonReader: {
    repeatitems: false,
    id: "0",
    root:  function (obj) {
        return obj;
    },
    records: function (obj) {
        return obj.length;
    },
    page: function () {
        return 1;
    },
    total: function () {
        return 1;
    }
}

しかし、あなたが提起したコードを機能させるには、さらにバグを修正する必要があります:

  • HTML フラグメント
<table id="list1></table> <div id="pager1"></div>

に固定する必要があります

<table id="list1"></table> <div id="pager1"></div>
  • jQuery("#list2").jqGrid({に固定する必要がありますjQuery("#list1").jqGrid({
  • 不要な{文字が 1 つあるため、JSON データを修正して構文エラーを削除する必要があります。正しいデータは
[{"Name": "Student1", "Email": "Email1", "CellPhone": null},
 {"Name": "Student2", "Email": "Email2", "CellPhone": null}]

修正されたデモは動作します。

于 2012-06-29T05:39:10.853 に答える
0

私の知る限り、次のように jsonReader で JSON オブジェクト名を設定する必要があります。

jsonReader: {
            repeatitems: true,
            id: "0",
            cell: "",
            rows : "details",
            page : "pageno"
            }

JSON形式:

 {"pageno":"1", "details" : [{"Name": "Student1", "Email": "Email1", "CellPhone": null},   
    {{"Name": "Student2", "Email": "Email2", "CellPhone": null}] 

jsonreader オプション:

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retriving_data#json_data

于 2012-06-29T03:03:53.230 に答える