Опция нестандартного форматера jqGrid "unformat" не работает, если поставляется с функцией.
Я предоставляю функцию для этой опции. пример пользовательского форматера предполагается, что он работает, но он не работает.
Моя основная цель иметь функцию неформатирования - дать правильное значение функции сортировки (когда вы сортируете, щелкая заголовок сортируемого столбца) который вызывает unformat и formatter, передаваемые в colModel.
Вот мой код (все модули включены для 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, где unformatFunction вызывается для каждой строки.Я сомневаюсь, что unformatFunction не вызывается при сортировке.
Я только что подтвердил, отредактировав пример , что он не работает, что-то ужасно неправильно.Я не могу думать ни о каких ошибках.просто не вызывайте функцию unformat, указанную в colModel.