当我向 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 建议的那样,我在这里提供附加信息:
- 这些是我正在使用的 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
- 我的 JavaScript 源代码:
var grid = jQuery("#list").jqGrid({ datatype: 'json', caption: 'Transaction Log', hiddengrid: 'true', postData: { 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', ...], colModel: [ { name: 'Reference', index: 'Reference', width: '60' }, { name: 'TradeDate', index: 'TradeDate', width: '70' }, { name: 'Status', index: 'Status', width: '50' }, { name: 'LegalEntity', index: 'LegalEntity', width: '80' }, ... ], pager: $('#pager'), rowNum: 10, height: '100%' });
- 我已经从[此链接][1]下载了最新版本的jqGrid,它说它是**4.4.0**版本。
我该如何解决这个问题?
提前致谢。
最佳答案
在 jquery.jqGrid.min.js
之前包含 grid.locale-en.js
以使 jqGrid 正常工作,这一点很重要。 p>
此外,我建议您向 jqGrid 添加 gridview: true
选项,并将 pager: $('#pager')
替换为 pager: '#pager '
因为 jqGrid 只需要寻呼机的 id 选择器。如果您使用 pager: $('#pager')
那么 jqGrid 会将参数替换为 pager: '#pager'
。因此,pager: $('#pager')
形式作为 jqGrid 参数实际上没有任何意义。
关于jquery - jqgrid中的"Undefined"消息,"b.jgrid.formatter is undefined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11258957/