jqGrid不在MVC 4.0中显示行

时间:2012-07-30 22:37:43

标签: jqgrid asp.net-mvc-4

我已经尝试了,我终于放弃了试图找出为什么我的jqGrid不显示数据。

让我试着一步一步走: 以下是脚本中包含的内容......

<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
<link href="../../Content/themes/redmond/jquery-ui-1.8.2.custom.css" rel="stylesheet" type="text/css" />
<link href="../../Content/themes/redmond/ui.jqgrid.css" rel="stylesheet" type="text/css" />
<link href="../../Content/themes/base/jquery.ui.button.css" rel="stylesheet" type="text/css" />

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js" type="text/javascript"></script>

<script src="../../Scripts/grid.locale-en.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.jqGrid.min.js" type="text/javascript"></script>

JSON返回:

{
"total": 1,
"page": 1,
"records": 1,
"rows": [
    {
        "id": "0001",
        "cell": [
            "0001",
            "XXXXX",
            "XXXX",
            "XXX",
            "XXX",
            "XXXXX",
            "XXXX",
            "7/27/2012 1:46:22 PM",
            "XXXXX",
            "7/30/2012 3:48:25 PM"
        ]
    }
]

}

jqGrid代码如下:

jQuery(function ($) {
    jQuery('#tblManageApplication').jqGrid({
        url: '/AdminView/ManageApplicationsJQGridData',
        datatype: 'json',
        loadError: function (xhr, status, error) { alert(status + " " + error); }, 
        mtype: 'GET', 
        colNames: ['Application ID', 'Application Name', 'Application Description', 'Country Code', 'Country Name', 'Source Indicator Code', 'Insert User ID', 'Insert User Timestamp', 'Update User ID', 'Update User Timestamp'],
        colModel: [
                    { name: 'ApplicationID', jsonmap: 'cell.ApplicationID', width: 150 },
                    { name: 'ApplicationName', jsonmap: 'cell.ApplicationName', width: 200 },
                    { name: 'ApplicationDescription', jsonmap: 'cell.ApplicationDescription', width: 250 },
                    { name: 'CountryCode', jsonmap: 'cell.CountryCode', width: 100 },
                    { name: 'CountryName', jsonmap: 'cell.CountryName', width: 100 },
                    { name: 'SourceIndicatorCode', jsonmap: 'cell.SourceIndicatorCode', width: 100 },
                    { name: 'InsertUserID', jsonmap: 'cell.InsertUserID', width: 100 },
                    { name: 'InsertUserTimestamp', jsonmap: 'cell.InsertUserTimestamp', width: 100, formatter: 'date', formatoptions: { newformat: 'd-m-Y' }, datefmt: 'd-m-Y' },
                    { name: 'UpdateUserID', jsonmap: 'cell.UpdateUserID', width: 100 },
                    { name: 'UpdateUserTimestamp', jsonmap: 'cell.UpdateUserTimestamp', width: 175, formatter: 'date', formatoptions: {newformat: 'd-m-Y'}, datefmt: 'd-m-Y' }
                  ],
        pager: jQuery('#pager'),
        sortName: 'ApplicationID',
        rowNum: 10,
        jsonReader: { repeatitems: false },
        rowList: [10, 20, 50],
        sortorder: 'desc',
        height: 300,
        width: 1200,
        caption: 'Manage Applications',
        onCellSelect: function (rowid, index, contents, event) {
            alert('onCellSelect: ' + index + ' : ' + contents);
        },
        success: function (data, textStatus) {
            if (textStatus == 'success') {
                alert('Successful');
            }
        },
        error: function (data, textStatus) {
            alert('An error has occurred');
        }
    });
});

想要添加相应的HTML供您参考:

<table id="tblManageApplication"></table>
<div id="pager"></div>

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

首先,您能否确认您从控制器和colModal名称发送的数据是否按字母顺序排列?

第二次检查你的json读者

检查此链接

http://www.ok-soft-gmbh.com/jqGrid/ipInfo.htm我认为你需要在这里指定一些内容,比如id和记录。

答案 1 :(得分:0)

代码中的主要错误是jsonReader: { repeatitems: false }选项和jsonmap的使用情况,在您根本不需要的情况下。您以标准格式生成数据。因此,您必须删除能够填充网格的选项。

此外,我建议您将数据格式更改为ISO 8601格式(您可以在服务器代码上使用“o”格式的DateTime)或至少定义正确的srcformat

formatoptions: {srcformat: 'm/d/Y g:i:s A', newformat: 'd-m-Y'}

The demo证明我上面描述的变化有效。