0

JSONデータをjqgridにバインドしようとしています。しかし、私はデータを取得していません。

ここに、私のコードがあります:

$(function () {
            $("#list").jqGrid({
                url:'<%:Url.Action("LoadData","Home")%>',
                datatype: "JSON",
                mtype: "GET",
                colNames: ["sid","sname"],
                colModel: [
            { name: "sid", width: 55,align:"center"},
            { name: "sname", width: 90,align:"center"},
                          ],
                jsonReader: {
                    repeatitems: false
                },
                pager: "#pager",
                rowNum: 10,
                rowList: [10, 20, 30],
                viewrecords: true,
                gridview: true,
                autoencode: true,
                caption: "My first grid"
            });
        }); 

Asp.net MVC アプリケーションで使用しています。

コントローラーを押して JSON データを取得することはできますが、データをグリッドに表示することに失敗しました。

コントローラーから適切な json o/p を取得しています。

私のコントローラーは:

public JsonResult LoadData()

   {
        var Data= new DataTable();
        Data= DataModel.LoadData();
        var JsonData = JsonConvert.SerializeObject(Packages, Formatting.Indented);
        return Json(new
        {
            JsonData
        }, JsonRequestBehavior.AllowGet);
    }

JQgrid jquery コードにエラーがあると思います。まず、最小限の構成で jqgrid を実装したいと考えています。

私が得ているJSON応答は次のとおりです。

[
  {
    "sid": 2,
    "sname": "ABC"
  },
  {
    "sid": 3,
    "sname": "XYZ"
  },
  {
    "sid": 4,
    "sname": "CBA"
  },
  {
    "sid": 5,
    "sname": "IIT"
  },
  {
    "sid": 6,
    "sname": "NIT"
  }
]

これは私のHTML構造です:

<table id="list">
    </table> 
    <div id="pager"></div>

取得しているデータから重複を削除しました..

JSON の結果、Visual Studio の Text Visualizer で確認しました。問題ありません。

助けてください..

4

2 に答える 2

0

あなたの問題の理由はの使用法にあると思いますJsonConvert.SerializeObjectstringの代わりにobjectを返す必要があります。使ってみて

return Json(Packages, JsonRequestBehavior.AllowGet);

直接。

于 2013-10-10T10:57:03.360 に答える