【问题标题】:"Undefined" message in jqgrid, "b.jgrid.formatter is undefined"jqgrid 中的“未定义”消息,“b.jgrid.formatter 未定义”
【发布时间】:2012-06-30 19:38:09
【问题描述】:

当我向 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** 版本。

我该如何解决这个问题?

提前致谢。

【问题讨论】:

  • 如果出现此类错误,您应该始终 1) 使用 jquery.jqGrid.src.js 而不是 jquery.jqGrid.min.js 重复相同的操作 2) 您应该指定您使用的 jqGrid 的确切版本 3) 您应该包括列表您在页面上加载的 JavaScript 文件。加载顺序可能非常重要。 4) 你应该包含定义 jqGrid 的 JavaScript 代码。
  • 嗨@Oleg,感谢您为我提供了我应该在此处展示的详细信息列表,以便与社区一起找到解决方案。

标签: jquery jqgrid undefined


【解决方案1】:

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

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

【讨论】:

  • @DevetiPutnik:$.jgrid.formatter 将在grid.locale-en.js 中定义,并将在jquery.jqGrid.src.js 中扩展和使用。所以文本“b.jgrid.formatter is undefined”可能只是因为你没有包含grid.locale-en.js。您是否使用jquery.jqGrid.src.js 尝试过您的代码?你得到哪个错误以及jquery.jqGrid.src.js的哪一行?
  • 非常感谢!我重新排列了列表,现在一切正常!
  • 很好@Oleg。我将您的解决方案添加到博客:blog.webdevilopers.net/… 谢谢
  • 现在没有 JS 错误,但我看到“警告,请选择行”。这是返回列表为空的时候
  • @CsabaToth:对不起,但我不确定我是否理解正确。无论如何,语言文件 grid.locale-en.js 或其他 grid.locale-XX.js 应包含在 jquery.jqGrid.min.jsjquery.jqGrid.src.js 之前
猜你喜欢
  • 2021-04-21
  • 2018-11-18
  • 2020-06-27
  • 2021-06-20
  • 2020-02-22
  • 2020-11-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多