用于预定义格式化程序的jqGrid

用于预定义格式化程序的jqGrid,jqgrid,Jqgrid,我有一个jqGrid,其中colModel的格式化程序函数必须定义为字符串 {名称:'FileSize',索引:'FileSize',宽度:90,可编辑:true, 格式化程序:'fileSizeFormatter'} 在格式化程序函数不是字符串的情况下,我不能使用以下命令,因为我在服务器端用C#构建了colmodels。如果我可以使用非字符串格式化程序来定义unformat,那么将是一个解决方案,如中所示 {名称:'FileSize',索引:'FileSize',宽度:90,可编辑:true

我有一个jqGrid,其中colModel的格式化程序函数必须定义为字符串

{名称:'FileSize',索引:'FileSize',宽度:90,可编辑:true,
格式化程序:'fileSizeFormatter'}
在格式化程序函数不是字符串的情况下,我不能使用以下命令,因为我在服务器端用C#构建了colmodels。如果我可以使用非字符串格式化程序来定义unformat,那么将是一个解决方案,如中所示

{名称:'FileSize',索引:'FileSize',宽度:90,可编辑:true,
格式化程序:fileSizeFormatter}
这是我使用fn.fmatter所需的fileSizeFormatter,因为我的格式化程序是作为字符串传递的,代码假定它是预定义的lile“select”、“currency”等格式之一

$.fn.fmatter.fileSizeFormatter=函数(cellval,选项){
var fileUnit=“B”;
if(cellval){
var文件单元;
var-iKBFileSize;
if(cellval<1024){
iKBFileSize=cellval;
}否则{
iKBFileSize=cellval/1024;
fileUnit=“KB”;
}
var result=iKBFileSize.toFixed(1)+fileUnit;
返回结果;
}
返回cellval+fileUnit;
};

所以问题是如何为作为字符串传递的格式化程序定义unformMatter。当我执行grid.getrowdata或编辑单元格时,未使用我的内容。它正在用文件单元向我获取数据

$.unformat.fileSizeFormatter=函数(单元格值、选项、单元格){
返回$('input',cellval).is(“:checked”)?true:false;
};

你应该用另一种方式定义不可原谅的事情:

$.fn.fmatter.fileSizeFormatter.unformat=函数(单元格值、选项、元素){
return$(elem).find('input').is(“:checked”)?true:false;
}

您应该在定义格式化程序(
$.fn.fmatter.fileSizeFormatter
)后定义原因问题