在網頁上使用jqGrid 4.5.3,我有可以是文本或數字的數據。我在列上使用了一個自定義的排序函數,但它並沒有按照我期望排序的方式排序。jqGrid - 自定義排序功能 - 排序數字和文本
我在網格中的行下面的數據,這是他們被髮送的順序:
123
654
321
Test
James
如果我採取相同的數據&把它放在Excel和排序吧,順序(從小到大)是:
123
321
654
James
Test
如果我在Excel中再次對其進行排序,從大到小,它是:
Test
James
654
321
123
在我的jQgrid中,訂單總是先有文本,然後是數字。兩者都是正確排列的(在它們之間),但是文本始終位於網格的頂部。自定義代碼排序是:對於被排序的列
function myCustSort (myCell, rowObj) {
var n = myCell.length;
var intRegex = /^\d+$/ ;
var checkNumeric;
checkNumeric = intRegex.test(myCell);
if (typeof myCell === "string") {
if (checkNumeric === true) {
return parseInt(myCell);
}
else {
return myCell;
}
}
else {
return myCell;
}
} // end myCustSort
的colModel
是:
{name:"TestData",
index:"TestData",
width:30,
align:"center",
sorttype: function (cell, obj) {
return myCustSort (cell) ;
},
xmlmap:"Rowset>Row>TestData"
},
我在自定義排序功能有顯示器,並正確評估數值作爲數字和字符串作爲字符串,但是,我不能使它與Excel中的相同數據的排序方式相同。
我已經看過jqGrid的自定義排序函數的幾個例子,但他們正在調用網格數據的自定義排序,在那裏它按該單元格數據的子串進行排序。我無法找到正在排序的數據是數字和文本混合的地方。
請讓我知道如果我錯過了本專欄的自定義排序功能的東西。謝謝!