1

JQGridでJSONデータをレンダリングしようとしています。次のエラーが発生します。

Error: b is undefined
Source File: http://localhost:1302/Scripts/jquery.jqGrid.min.js
Line: 23

最小化されていないJQGridソースコードを使用すると、getAccessorメソッドが複数回呼び出され、最後の呼び出しでメソッド(obj)の最初のパラメーターに未定義の値が渡されることがわかります。

Error: obj is undefined
Source File: http://localhost:1302/Scripts/jquery.jqGrid.src.js
Line: 151

これがグリッドのレンダリングを停止させている原因のようですが、なぜですか?

レンダリングされたグリッドには列見出しが表示されますが、内容は表示されません。グリッドの「Loading...」メッセージが消えることはありません。

私のJSONデータは次のようになります。

{
   "total":"1",
   "page":"1",
   "userdata":{

   },
   "records":"2",
   "rows":[
      {
         "DateOfBirth":"11/04/2012 12:00:00 AM",
         "DisambiguationNote":"Boring guy",
         "FirstName":"Joe",
         "LastName":"Bloggs",
         "MiddleName":"Binkie",
         "PersonId":"1"
      },
      {
         "DateOfBirth":"01/01/2001 12:00:00 AM",
         "DisambiguationNote":"someone else",
         "FirstName":"Edna",
         "LastName":"Edwards",
         "MiddleName":"Edith",
         "PersonId":"8"
      }
   ]
}

私のグリッドコードは次のようになります。

$(function () {
    $("#persongrid").jqGrid({
        url: '/Person/List',
        datatype: 'json',
        mtype: 'GET',
        jsonreader: {
            root: "rows",
            page: "page",
            total: "total",
            records: "records",
            repeatitems: false,
            id: "5"  ,
            cell: ""  ,
            userdata: "userdata"
        },
        colModel: [
            { name: 'DateOfBirth', index: 'DateOfBirth',sorttype:'date' },
            { name: 'DisambiguationNote', index: 'DisambiguationNote' },
            { name: 'FirstName', index: 'FirstName' },
            { name: 'LastName', index: 'LastName' },
            { name: 'MiddleName', index: 'MiddleName' },
            { name: 'PersonId', index: 'PersonId',sorttype:'int' }
        ],
        pager: '#persongridpager',
        rowNum: 10,
        rowList: [10, 20, 30],
        viewrecords: true,
        gridview: true,
        caption: 'People'
    });
});

上記のようにAJAXリクエストからJSONデータが取得されていることがわかります。また、JQGridのJSONデータの手順を注意深く実行しましたが、何が間違っているのかわかりません。

誰か助けてもらえますか?ありがとうございました。

4

1 に答える 1

3

エラーは非常に簡単ですが、見つけるのは困難です。jsonreader代わりにを使用するjsonReaderため、jsonreaderは無視され、デフォルトjsonReaderが使用されます。

デモでどのように見ることができるかは、変更後にデータが正常に読み取られます。

ちなみに、jsonReaderデフォルトとは異なるプロパティのみを指定して使用することができます

jsonReader: {
    repeatitems: false,
    id: "5",
}

また

jsonReader: {
    repeatitems: false,
    id: "PersonId",
}

視認性を向上させるためだけにデモheight: 'auto'オプションを追加しました。

于 2012-05-06T22:38:18.010 に答える