0

私はjqGridを初めて使用します。asp.net Web APIを使用して単純なjqgridを読み込もうとしています。API は emailDto のリストを送り返します。emailDto は、3 つのパブリック プロパティを持つプレーン クラスです。

問題は、jqgrid が読み込まれていないことです。どんな助けでも大歓迎です。

function dataBindToGrid() {
        var lastsel;
        $("#emailgrid").jqGrid({
            url: '/api/email/',
            datatype: "json",
            mytype: 'GET',
            ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
            colNames: ['Address ID', 'Type', 'Email'],
            colModel: [{ name: 'Address_ID', width: 70, primaryKey: true, editable: false, sortable: false, hidden: false, align: 'left' },
                    { name: 'Email_Type', width: 70, editable: true, align: 'left', sortable: false },
                    { name: 'Email_Address', width: 200, editable: true, align: 'left', sortable: false }

            ],
            onSelectRow: function (id) {
                if (id && id !== lastsel) {
                    var grid = $("#emailgrid");
                    grid.restoreRow(lastsel);
                    grid.editRow(id, true);
                    lastsel = id;
                }
            },
            //This event fires after all the data is loaded into the grid
            gridComplete: function () {
                //Get ids for all current rows
                var dataIds = $('#emailgrid').jqGrid('getDataIDs');
                for (var i = 0; i < dataIds.length; i++) {
                    //Put row in edit state
                    $("#emailgrid").jqGrid('editRow', dataIds[i], false);
                }
            },
            rowNum: 3,
            viewrecords: true,
            caption: "Email Addresses"
        });
    }
4

2 に答える 2

0

解決しました!

以下のjqGridに追加するだけで、機能します。

jsonReader: {
                repeatitems: false,
                page: function () { return 1; },
                root: function (obj) { return obj; },
                records: function (obj) { return obj.length; }
            },
于 2012-07-06T17:18:25.683 に答える
0

jsondatatype 用に構成されている場合、jqGrid は次の json 形式のデータを想定しています。

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

返されるデータはこれと一致する必要があります。一致しないと機能しません。これはデフォルトの json 構造です (必要に応じて変更できます)。使用しているブラウザーに応じて、グリッド自体の構築中に送信および返されるデータを含む ajax 要求と応答を確認できるはずです (Firefox は firebug を使用し、IE は開発者ツールバーを使用します)。

こちらのとおり

于 2012-07-06T01:53:09.347 に答える