15

当我向 jqgrid 发送 JSON 响应时,我收到“未定义”消息,Firebug 告诉我:

b.jgrid.formatter is undefined

[Break On This Error]   

...input===true){b(".ui-pg-input",l).val(a.p.page);h=a.p.toppager?"#sp_1"+m+",#sp_1...

这基本上并没有告诉我太多。

当我发送空响应时会发生这种情况:

{"total":0,"page":1,"records":0,"rows":[]}

或用记录回复。然后记录在网格中可见。显示此“未定义”消息后,我无法浏览页面,因为当然出现了代码中的错误。

正如@Oleg 建议的那样,我在这里提供了其他信息:

  1. 这些是我正在使用的javascript:
    jquery.validate.min.js
    jquery.validate.unobtrusive.min.js
    jquery-1.5.1.min.js
    jquery-ui-1.8.11.min.js
    jquery.jqGrid.min.js
    ui/jquery.ui.core.js
    ui/jquery.ui.widget.js
    ui/jquery.ui.datepicker.js
  2. 我的 javascript 源代码:
    var grid = jQuery("#list").jqGrid({
                数据类型:'json',
    
                标题:“交易记录”,
                隐藏网格:'真',
                发布数据: {
                    companyId: function () { return $("#SelectedCompany").val(); },
                    userId: function () { return $("#SelectedUser").val(); },
                    dateFromString: function () { return $("#DateFrom").val(); },
                    dateToString: function () { return $("#DateTo").val(); }
                },
                url: '@Url.Action("GetTransactionLogData")',
                mtype: 'GET',
                colNames: ['Ref.', 'TradeDate', 'Status', 'LegalEntity', ...],
                col型号:[
                    {名称:'参考',索引:'参考',宽度:'60'},
                    {名称:'TradeDate',索引:'TradeDate',宽度:'70'},
                    {名称:'状态',索引:'状态',宽度:'50'},
                    {名称:'LegalEntity',索引:'LegalEntity',宽度:'80'},
                    ...
                ],
                寻呼机:$('#pager'),
                行数:10,
                高度:'100%'
    
            });
    
  3. 我已经从 [this link][1] 下载了最新版本的 jqGrid,它说它是 **4.4.0** 版本。

我该如何解决这个问题?

提前致谢。

4

1 回答 1

30

重要的是在使 jqGrid 工作grid.locale-en.js 之前包含。 jquery.jqGrid.min.js

此外,我建议您向gridview: truejqGrid 添加选项并替换pager: $('#pager')为,pager: '#pager'因为 jqGrid 只需要寻呼机的 id 选择器。如果您使用pager: $('#pager'),那么 jqGrid 会将参数替换为pager: '#pager'. 所以表单pager: $('#pager')作为 jqGrid 参数真的没有意义。

于 2012-06-29T09:59:17.803 回答