我正在尝试将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中检查过了。很好..
请帮助..
答案 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);
直接