0

私は Jquery に非常に慣れていないため、この点であなたの助けが必要です。

JSON URLでjqGridを使用しようとしていますが、使用できません。htm ページにデータが表示されません。

$(function () {
    "use strict";
    $('#list').jqGrid({
        datatype: 'json',
        url: 'json_url',
        caption: 'Prospect Finder',
        gridview: true,
        height: "auto",
        colNames: ['Partner','First Name', 'Last Name', 'Organization'],
        colModel: [
            {name: 'PARTNER', jsonmap: 'PARTNER' },
            {name: 'NAME_FIRST',jsonmap: 'NAME_FIRST' },
            {name: 'NAME_LAST', jsonmap: 'NAME_LAST' },
            {name: 'NAME_ORG1', jsonmap: 'NAME_ORG1' }
        ],
        jsonReader: {
            repeatitems: false,
            id: "PARTNER",
            root: function (obj) {
                return obj;
            }
        }
    });
});

そして、これは私のJSONデータです

{"itab":[ { "PARTNER":"0061000220", "NAME_FIRST":"", "NAME_LAST":"", "NAME_ORG1":"GTA Central" }, { "PARTNER":"0061000221", "NAME_FIRST":"", "NAME_LAST":"", "NAME_ORG1":"GTA West" }, { "PARTNER":"0061000222", "NAME_FIRST":"", "NAME_LAST":"", "NAME_ORG1":"GTA East" }, { "PARTNER":"0041000141", "NAME_FIRST":"", "NAME_LAST":"", "NAME_ORG1":"Office Systems" }  ]}

誰か助けてくれませんか?

ありがとう、DJ

4

3 に答える 3

1

toのrootプロパティを修正するだけです。さらに、十分に大きな値 ( など)を含めることが重要です。これを行わず、使用しない場合、jqGrid はサーバー応答 (のデフォルト値は 20) から最初の 20 行のみを表示し、他のすべての行を破棄します。jsonReaderroot: "itab"rowNumrowNum: 10000pagerrowNum

デモは JSON データを正常に読み取り、表示します

ここに画像の説明を入力

次のコードを使用します

$(function () {
    "use strict";
    $('#list').jqGrid({
        datatype: 'json',
        url: 'user1596433.json',
        caption: 'Prospect Finder',
        gridview: true,
        height: "auto",
        colNames: ['Partner','First Name', 'Last Name', 'Organization'],
        colModel: [
            {name: 'PARTNER', width: 80 },
            {name: 'NAME_FIRST' },
            {name: 'NAME_LAST' },
            {name: 'NAME_ORG1', width: 100 }
        ],
        jsonReader: {
            repeatitems: false,
            id: "PARTNER",
            root: "itab"
        },
        rowNum: 10000,
        autoencode: true,
        loadonce: true
    });
});
于 2013-02-16T10:47:04.903 に答える
0

ドキュメントを見てください。http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrifying_data#json_data json が正しく設定されていません。見る

  { 
      "total": "xxx", 
      "page": "yyy", 
      "records": "zzz",
      "rows" : [
        {"id" :"1", "cell" :["cell11", "cell12", "cell13"]},
        {"id" :"2", "cell":["cell21", "cell22", "cell23"]},
          ...
      ]
    }

これがデフォルトのフォーマットです (オーバーライドできますが、id、total、page、および records を提供する必要があります)。

jsonReader: {
    repeatitems: false,
    id: "Id",
    root: function (obj) { return obj.itab; },
    page: function (obj) { return 1; },
    total: function (obj) { return 1; },
    records: function (obj) { return obj.itab.length; }
}
于 2013-02-16T00:08:38.007 に答える
0

私の経験は次のとおりです。

テーブルが読み込み中にスタックしました。これは、URL から取得しようとしたが、処理できないことを意味します。

次に、json がデフォルトの jsonReader と互換性がないことに気付きました。解決策は次のいずれかです

1.jsonReaderをjsonデータと互換性があるように設定します

json データの例:

{"page":1,"YOUR_ROW_NAME":[{"YOUR_ID":"14","YOUR_CELL_NAME":["ImageHeight"]}]}

以下を javascript に追加します (他のキー (つまりページ) もオーバーライドできます)

jsonReader : { 
      root: "YOUR_ROW_NAME",  
      cell: "YOUR_CELL_NAME", 
      id: "YOUR_ID", 
},

2. デフォルトの jsonReader を慎重に使用し、データのエンコード中に角括弧 [] 内で "rows",'id','cell' を使用する必要があります

foreach($all as $row){
    $response->rows[$i]['id']=$row->id;
    $response->rows[$i]['cell']=array($row->id,$row->name,$row->url);
    $i++;
}

初心者向けの便利なウィキ: http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrifying_data#json_data

于 2014-02-03T07:43:40.837 に答える