我有一个js文件和名为viewLineBtn的函数名称。
在我的服务器代码中,我创建了一个对象列表
List<GridModelClass> addmodelResult = new List<GridModelClass>();
addmodelResult.Add(new GridModelClass { name = "AddTestApprove", label = "Approve", width = "40", hidden = false, formatter = "viewLineBtn" });
但是,viewLineBtn无法识别。怎么解决?
答案 0 :(得分:2)
似乎您从服务器返回JSON数据返回colModel
。结果,您拥有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,我建议您定义始终custom formatter(unformat
属性)。要在使用字符串值为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;
}
});