我有一个jqGrid,其中colModel的格式化程序函数必须定义为字符串
{name:'FileSize', index:'FileSize', width:90, editable: true,
formatter: 'fileSizeFormatter'}
我无法使用以下格式化程序函数不是字符串,因为我在C#中在服务器端构建了colmodel。如果我可以使用非字符串格式化器定义unformatter将是一个解决方案,如 Here
所示{name:'FileSize', index:'FileSize', width:90, editable: true,
formatter: fileSizeFormatter}
这是我需要使用fn.fmatter的fileSizeFormatter,因为我的格式化程序是作为字符串传递的,代码假设它是预定义的一个"选择",&# 34;货币" ...等
$.fn.fmatter.fileSizeFormatter = function (cellval, options) {
var fileUnit = "B";
if (cellval) {
var fileUnit;
var iKBFileSize;
if (cellval < 1024) {
iKBFileSize = cellval;
} else {
iKBFileSize = cellval / 1024;
fileUnit = "KB";
}
var result = iKBFileSize.toFixed(1) + fileUnit;
return result;
}
return cellval + fileUnit;
};
所以问题是如何为格式化程序定义unformatter,格式化程序作为字符串传递。当我执行grid.getrowdata或编辑单元格时,我的unformatter没有被使用。它通过文件单元获取数据。
$.unformat.fileSizeFormatter = function (cellvalue, options, cell) {
return $('input', cellval).is(":checked") ? true : false;
};
答案 0 :(得分:1)
您应该以另一种方式定义unformatter:
$.fn.fmatter.fileSizeFormatter.unformat = function (cellValue, options, elem) {
return $(elem).find('input').is(":checked") ? true : false;
}
在定义格式化程序($.fn.fmatter.fileSizeFormatter
)后,您应该定义无格式的原因。