我只是尝试在我的网站中使用jqgrid。 我使用vs 2013,asp.net mvc 5,并从nuget安装了jqgrid和jqgridmvc(jqgrid mvc helper)。 我按照jqgridmvc制作者(使用xml作为源代码)的例子,它工作正常: http://mvcjqgrid.skaele.it/Home/TreeGrid
然而,当我尝试使用json作为源时,不知何故它不起作用。我怀疑我的json格式是错误的,但我不知道在哪里:
控制器代码:
public JsonResult TreeGridData(GridSettings gridSettings)
{
var jsonData = new
{
total = 1,
page = 1,
records = 2,
rows = new[]{
new {id = 1, cell = new object[] {"1", "root 1", "0", null, false, false, true}},
new {id = 11, cell = new object[] {"11", "child 11", "1", "1", true,false, true}}
}
};
return Json(jsonData, JsonRequestBehavior.AllowGet);
}
查看代码:
@(Html.Grid("treeGrid")
.SetCaption("TreeGrid")
.AddColumn(new Column("ItemID")
.SetLabel("Id").SetKey(true))
.AddColumn(new Column("Name")
.SetAsExpandable())
.SetUrl(Url.Action("TreeGridData"))
.EnableTreeGrid()
)
谢谢!
编辑: 根据评论中的建议,我添加了控制器生成的响应 (www.localhost ... /控制器/ treegriddata):
{
"total":1,
"page":1,
"records":2,
"rows":
[{"id":1,"cell":["1","root 1","0",null,false,false,true]},
{"id":11,"cell":["11","child 11","1","1",true,false,true]}]
}
答案 0 :(得分:0)
好的,原来是因为我使用的库(mvcjqgrid)不支持我从Nuget下载的最新版本的jqgrid。生成的网格代码是“treedatatype”,而对于较新的jqgrid,正确的代码是“datatype”。所以我只是在onBeforeRequest事件中运行以下函数,一切正常!
function DataTypeCorrection() {
$("#tc-jqgrid").setGridParam({ datatype: 'json' });
}