JqG​​rid显示列,没有json数据

时间:2013-10-10 09:09:59

标签: c# asp.net-mvc json jqgrid

我正在尝试将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中检查过了。很好..

请帮助..

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

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

return Json(Packages, JsonRequestBehavior.AllowGet);

直接