2017-08-01 62 views
0

我使用Trirand的jqGrid。网格标题,行,分页显示正确,但数据行未填充。我经历了许多帖子并尝试了很多解决方案,但它根本无法工作。我确定有一些东西很简单,但我无法弄清楚。jqGrid不绑定json行。

我正在从我的ASP.NET MVC控制器的以下回应:

{ “总”:1, “页”:1, “记录”:2, “行”:[{ “ID” 为 “1”, “StudentName”: “Student1”}, { “ID”: “2”, “StudentName”: “STUDENT2”}]}

而jqGrid的代码如下:

$(function() { 

$("#jqGrid").jqGrid({ 

    url: '/Home/GetStudentsLists', 
    dataType: "json", 
    mtype: 'GET', 
    colNames: ['Id', 'StudentName'], 
    colModel: [ 
     { name: 'Id', index: 'Id', width: 60 }, 
     { name: 'StudentName', index: 'StudentName', width: 60 } 
    ],   
    rowNum: 9999, 
    sortname: 'Id', 
    loadonce: true, 
    rowList: [10, 20, 30], 
    pager: '#jqpager', 
    viewrecords: true, 
    sortorder: "desc", 
    caption: "Students Details", 
    height: 100, 
    autowidth: true   
}) }); 

,并包含脚本标记布局页面看起来像以下:

<head> 
    <meta charset="utf-8" /> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <title>@ViewBag.Title - My ASP.NET Application</title> 
    @Styles.Render("~/Content/css") 
    @Scripts.Render("~/bundles/modernizr") 
</head> 
<body> 
    ... 
    @Scripts.Render("~/bundles/jquery") 
    @Scripts.Render("~/bundles/bootstrap") 
    @RenderSection("scripts", required: false) 

    <link href="~/Content/themes/base/jquery-ui.css" rel="stylesheet" /> 
    <link href="~/Content/jquery.jqGrid/ui.jqgrid.css" rel="stylesheet" /> 
    <script src="~/Scripts/jquery-ui-1.10.0.js"></script> 
    <script src="~/Scripts/i18n/grid.locale-en.js"></script> 
    <script src="~/Scripts/jquery.jqGrid.js"></script> 
    <script src="~/Scripts/Custom/jQGridStudents.js"></script> 
</body> 

我感谢你的帮助。

+0

您使用的jqGrid的哪个**版本**(或可以使用)以及从哪个** fork **的jqGrid([free jqGrid](https://github.com/free-jqgrid/jqGrid),commercial [Guriddo jqGrid JS](http://guriddo.net/?page_id=103334)或版本<= 4.7中的旧jqGrid)?如果你不使用“free jqGrid”,那么你必须修改'dataType:“json”'为'datatype:“json”'。这应该是你的主要问题。代码中的其他建议将取决于您使用的jqGrid的版本和分支。 – Oleg

+0

非常感谢。我使用的是Trirand的jquery.jqGrid,版本4.4.4,以及nuget上的jQuery版本3.1.1,我可以使用你提到的任何这些网格。其次,我认为你在评论中写了两次dataType:“json”。看到上面的文本[dataType:“json”dataType:“json”]。 –

+0

JavaScript是**区分大小写**,''datatype''与**'dataType'不一样**(带有'T'的标题。 4.4.4版本已经有4.5年的历史,并且已经很长时间了。如果您使用NuGet,那么我建议您卸载旧的packge并使用[free-jqGrid](https://www.nuget.org/packages/free-jqGrid/)。另外,我建议你考虑从CDN加载免费的jqGrid。见[这里](https://github.com/free-jqgrid/jqGrid/wiki/Access-free-jqGrid-from-different-CDNs)和[here](https://free-jqgrid.github.io/越来越-开始/ index.html的#the_first_grid_code)。 – Oleg

回答

0

So Oleg在这里帮我找到了问题。感谢您的帮助奥列格。

该问题是由于我写了dataType而不是datatyppe的简单错字。只要将dataType更改为数据类型,所有东西都开始工作。

其次,我使用的jqgrid太旧了,所以我会按照上面Oleg在评论中提到的最新版本去。