我们在开发的MVC4门户网站上有许多jqGrids。除了一个之外,它对所有这些都很好。它显示网格,但没有数据,也没有寻呼机。我已经绞尽脑汁待了好几天,我看不出有什么不对劲。它使用与其他所有工作正常的网格相同的jQuery和控制器结构。这就是我所拥有的:
jQuery / HTML:
<table id="OrgUnitTableGrid"></table>
<div id="OrgUnitTableGridPager"></div>
<script>
$(function () {
$("#OrgUnitTableGrid").jqGrid({
url: '@Url.Action("OrgDataGridView2", "Home")',
dataType: 'json',
mtype: 'GET',
colNames: ['Pos ID', 'Position Name', 'Eff Date', 'ANZSCO', 'Function', 'Location', 'Reports To'],
colModel: [
{ name: 'PositionID', width: "70", sortable: true, align: 'left' },
{ name: 'PositionName', width: "150", sortable: true, align: 'left' },
{ name: 'EffectiveDate', width: "50", sortable: true, align: 'left' },
{ name: 'ANZSCO', width: "170", sortable: true, align: 'left' },
{ name: 'Function', width: "130", sortable: true, align: 'left' },
{ name: 'Location', width: "170", sortable: true, align: 'left' },
{ name: 'ReportsTo', width: "70", sortable: true, align: 'left' },
],
rowNum: 20,
rowList: [20, 50, 100],
width: "900",
height: '530px',
pager: '#OrgUnitTableGridPager',
sortname: "Pos ID",
sortorder: "asc",
edit: false,
viewrecords: true,
jsonReader: {
repeatitems: "false",
id: "0",
}
});
jQuery("#OrgUnitTableGrid").jqGrid('navGrid', '#OrgUnitTableGridPager', { edit: false, add: false, del: false });
});
</script>
这是相应的Controller动作
public ActionResult OrgDataGridView2()
{
WebPortalEntities db = new WebPortalEntities();
int page = int.Parse(Request.Params["page"]);
int rp = int.Parse(Request.Params["rows"]);
string sortname = Request.Params["sidx"];
string sortorder = Request.Params["sord"];
string searchText = Request.Params["searchValue"];
IEnumerable<OrgDataViewModel> rows = db.OrgDatas.OrderBy(p => p.PositionID).Select(p => new OrgDataViewModel
{
PositionID = p.PositionID,
PositionName = p.PositionName,
EffectiveDate = p.EffectiveDate,
ANZSCO = p.ANZSCO,
Function = p.Function,
Location = p.Location,
ReportsTo = p.ReportsTo,
}).Skip((page - 1) * rp);
int total = (rows.Count() / rp) + 1;
rows = rows.Take(rp);
JsonResult retVal = Json(new { page, total, rows }, JsonRequestBehavior.AllowGet);
return retVal;
}
当我检查创建的JSon时,它有数据并且看起来很好。我搜索了StackOverflow并在网上搜索了一些似乎没有用的东西。这只是令人困惑,因为我的其他网格都遵循相同的范例。救命啊!
答案 0 :(得分:1)
我终于找到了它。这是愚蠢的。
而不是:
datatype: 'json',
我有
dataType: 'json',
在客户端的jQuery中。一个字母错了,jqGrid的默认数据类型是XML,这就是它在parsererror
事件中抛出loadError
的原因。对于年轻(并且年纪稍大)的球员来说,这是一个陷阱。