私の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) {
}
}
});