"Undefined" в jqgrid, "b.jgrid.formatter undefined"
когда я отправляю ответ JSON на jqgrid, я получаю сообщение "undefined", и 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":[]}
или ответ с записями. Записи затем отображаются в сетке. После этого появляется сообщение "undefined", я не могу просматривать страницы, так как, конечно, появилась ошибка в коде.
Как @Oleg предложил мне предоставить дополнительную информацию:
- Это javascripts, которые я использую:
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%'
});
- Я загрузил последнюю версию jqGrid из [этой ссылки] [1], это говорит о версии ** 4.4.0 **.
Как я могу это решить?
Спасибо заранее.
Ответы
Ответ 1
Важно включить grid.locale-en.js
перед jquery.jqGrid.min.js
, чтобы сделать работу jqGrid.
Кроме того, я бы рекомендовал вам добавить параметр gridview: true
в jqGrid и заменить pager: $('#pager')
на pager: '#pager'
, потому что jqGrid нужен только для выбора идентификатора пейджера. Если вы используете pager: $('#pager')
, тогда jqGrid заменит параметр на pager: '#pager'
. Таким образом, форма pager: $('#pager')
не имеет никакого смысла в качестве параметра jqGrid.