在我的 jqGrid 中有以下内容:
colModel.push({ name: 'pcc2008-2007', index: 'pcc0807', width: 100, align: "Right",
sorttype: "float", formatter: "number", resizable: false,
formatter: function (cellvalue, options, rowObject) {
return percentageChange(rowObject['vol08'], rowObject['vol07'], 4);
}
});
格式化程序工作得很好,最后返回一个值(带有前缀 %),但是当我点击网格上的列标题时,结果并没有按以前的顺序排序。
我添加了一个“unformatter”函数,它只是简单地替换“%”,看是否产生了正确的排序,但同样排序根本没有正确实现。
谁能解释我做错了什么?
** 编辑 **
function percentageChange(endYear, startYear, duration) {
var p1 = Math.abs((endYear - startYear) / Math.abs(startYear) * 100);
if (p1 == Number.POSITIVE_INFINITY || p1 == Number.NEGATIVE_INFINITY) { return '0'; }
if (isNaN(p1)) { return '0'; }
else { return Math.round(p1 * 100) / 100; }
}
** EDI2 **
整个 jqGrid 在这里调用:
$("#list2").jqGrid({
datastr: formattedBrandData,
datatype: "jsonstring",
colModel: colModel,
height: 'auto',
width: 1000,
loadonce: true,
sortable: true,
gridview: true,
shrinkToFit: false,
viewrecords: true,
rowNum: 100,
gridComplete: function (index, colindex, sortorder) {
var aaa = $("#list2").jqGrid('getRowData');
formattedBrandData = aaa;
drawChart();
var rowIDs = jQuery("#list2").getDataIDs();
for (var i = 0; i < rowIDs.length; i = i + 1) {
if (i == 0) { var trElement = jQuery("#" + rowIDs[i], $('#list2')); trElement.removeClass('ui-widget-content'); trElement.addClass('resultsColour1'); }
if (i == 1) { var trElement = jQuery("#" + rowIDs[i], $('#list2')); trElement.removeClass('ui-widget-content'); trElement.addClass('resultsColour2'); }
if (i == 2) { var trElement = jQuery("#" + rowIDs[i], $('#list2')); trElement.removeClass('ui-widget-content'); trElement.addClass('resultsColour3'); }
if (i == 3) { var trElement = jQuery("#" + rowIDs[i], $('#list2')); trElement.removeClass('ui-widget-content'); trElement.addClass('resultsColour4'); }
if (i == 4) { var trElement = jQuery("#" + rowIDs[i], $('#list2')); trElement.removeClass('ui-widget-content'); trElement.addClass('resultsColour5'); }
if (i == 5) { var trElement = jQuery("#" + rowIDs[i], $('#list2')); trElement.removeClass('ui-widget-content'); trElement.addClass('resultsColour6'); }
if (i == 6) { var trElement = jQuery("#" + rowIDs[i], $('#list2')); trElement.removeClass('ui-widget-content'); trElement.addClass('resultsColour7'); }
if (i == 7) { var trElement = jQuery("#" + rowIDs[i], $('#list2')); trElement.removeClass('ui-widget-content'); trElement.addClass('resultsColour8'); }
}
},
loadComplete: function () {
},
jsonReader: {
repeatitems: false,
root: function (obj) {
return obj;
},
onComplete: function (data, response) {
}
}
});