提供功能时,jqGrid定制格式程序选项“ unformat”不起作用。
我正在为此选项提供功能。
custom formatter example
应该工作,但是不工作。
我拥有unformat函数的主要目的是为sort函数(当您通过单击可排序的列标题进行排序时)赋予适当的值,该函数调用提供给colModel的unformat和formatter。
这是我的代码,(所有模块都包含在jquery UI和jqgrid中。)
<link href="../css/jquery-ui-1.8.11.custom.css" rel="stylesheet" type="text/css"/>
<link href="../css/ui.jqgrid.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../js/jquery-1.5.2.js"></script>
<script type="text/javascript" src="../js/jquery-ui-1.8.11.custom.min.js"></script>
<script type="text/javascript" src="../js/jquery.jqGrid.min.js"></script>
$("#GridTable").jqGrid({
datatype: "local",
colNames: ['id', 'col1', 'col2', 'col3', 'col4'],
colModel: [{name:'id',index:'id', align:'left', width:'260px'},
{name:'col1',index:'col1', width:'170px'},
{name:'col2',index:'col2', width:'160px'},
{name:'col3',index:'col3', sorttype:'float', width:'110px',unformat: unformatterFunction, formatter: formatterFunction },
{name:'col4',index:'col4', sorttype:'float', width:'110px'}
],
altRows: true,
caption: "Test Data",
height: '100%',
autowidth : true,
shrinkToFit: true,
});
function unformatterFunction(cellvalue, options, rowObject){
if(cellvalue=="-"){
return "0";
}
return cellvalue;
}
function formatterFunction(cellvalue, options, rowObject){
if(cellvalue > 15){
return "-";
}
return cellvalue;
}
我花了很多时间来将调用跟踪到grid.base.js中,但找不到去jquery.fmatter.js的方法,在jquery.fmatter.js中,每一行都会调用unformatFunction。
我的怀疑是unformatFunction在排序时没有被调用。
我只是通过编辑the example确认了它不起作用,这是非常错误的。我想不出任何错误。它只是不调用colModel中指定的unformat函数。
最佳答案
如果您需要定制以对本地jqGrid进行排序,那么使用定制格式器是错误的方法。您需要使用sorttype
作为功能。查看the old answer包括演示或this one。
将sorttype
用作函数的最简单方法是从函数转换后的数据返回,该数据应用于在相应的比较操作中定义以定义网格中行的顺序。