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 的文本可视化器。它很好..

请帮忙..

4

2 回答 2

0

不确定 .aspx 文件中的 .js 文件中有 js 代码。

无论如何尝试这个并使用 Firefox/Chrome 控制台检查请求/响应

$(function () {
        $("#list").jqGrid({
            url:/Home/LoadData/,
            datatype: "json",
            mtype: "GET",
            colNames: ["sid","sname"],
            colModel: [
                      { name: "sid", width: 55,align:"center"},
                      { name: "sname", width: 90,align:"center"},
                      ],
            pager: "#pager",
            rowNum: 10,
            rowList: [10, 20, 30],
            viewrecords: true,
            gridview: true,              
            caption: "My first grid"
        });
    }); 

HTML

<table id="list"></table>
<div id="pager"></div>
于 2013-10-10T10:04:05.983 回答
0

我想你的问题的原因是使用JsonConvert.SerializeObject. 您应该返回object而不是string。尝试使用

return Json(Packages, JsonRequestBehavior.AllowGet);

直接地。

于 2013-10-10T10:57:03.360 回答