Кажется, что вы возвращаете colModel
, поскольку данные JSON возвращаются с сервера. В результате у вас есть formatter
свойство, которое имеет тип string
(например, formatter: "viewLineBtn"
) вместо функции (например, formatter: viewLineBtn
, где viewLineBtn
определяется как функция).
Для устранения проблемы вы можете изменить способ определения функции форматирования. Вместо использования
function viewLineBtn (cellValue, options, rowObject) {
// do something here
return htmlFragmentOfCell;
}
вы должны использовать
$.extend($.fn.fmatter, {
viewLineBtn: function (cellValue, options, rowObject) {
// do something here
return htmlFragmentUsedInCell;
}
});
В случае, если вы можете использовать formatter: "viewLineBtn"
в colModel
.
Я бы порекомендовал вас всегда определять custom unformatter (unformat
), если вы определяете custom formatter. Для этого в случае строки использования значения formatter
вы должны определить unformatter следующим образом:
$.extend($.fn.fmatter, {
viewLineBtn: function (cellValue, options, rowObject) {
// do something here
return htmlFragmentUsedInCell;
}
});
$.extend($.fn.fmatter.viewLineBtn, {
unformat: function (cellValue, options, elem) {
// do something here
return htmlFragmentFromDomElem;
}
});
форматтеры jQGrid являются Javascript функции, которые декларируют и называются они, когда данные в сетке заполняется на фронт- конец. Параметры для функций форматирования jQGrid также очень специфичны. Ссылка [Custom Formatter] (http://www.trirand.com/jqgridwiki/doku.php?id=wiki:custom_formatter). Насколько я знаю, пользовательские форматы не имеют никакого отношения к серверному коду. –
Я добавил formatter = "viewLineBtn" в свой список, и в моем javascript есть функция viewLineBtn. – user3431414
Опубликуйте свой Javascript для нас, чтобы его рассмотреть. –