Javascript 如何对具有多种值类型的列进行排序?[Trirand JQGrid 4.6]

Javascript 如何对具有多种值类型的列进行排序?[Trirand JQGrid 4.6],javascript,jquery,jqgrid,Javascript,Jquery,Jqgrid,我在中使用了jqgrid的jqgrid的“groupd header row config”版本 它生成网格。但是假设senario whereNotes列可以包含数字和字符串,因为在某些行中有数字,而在某些行中有字符串字符,排序truns off,它只对字符串字符有效 场景:假设该表有五行,Notes列有五行以下数据: this is good 123 number 123 number >123.23 <=222.88 这很好 123 123号 >123.23 jqG

我在中使用了jqgrid的jqgrid的“groupd header row config”版本

它生成网格。但是假设senario where
Notes
列可以包含数字和字符串,因为在某些行中有数字,而在某些行中有字符串字符,排序truns off,它只对字符串字符有效

场景:假设该表有五行,
Notes
列有五行以下数据:

this is good

123

number 123 number

>123.23

<=222.88
这很好
123
123号
>123.23

jqGrid包含多种定制排序的可能性。首先,必须指出的是,只有在将
数据类型:“local”
或某个远程
数据类型
“json”
“jsonp”
“xml”
)与
loadonce:true
结合使用时,以下所有可能性才有意义。在最后一种情况下,从服务器首次加载数据后,
数据类型将更改为
“本地”

要对列jqGrid中的本地数据进行排序,必须比较这些值。它做了一些初步的步骤。首先,if用items填充数组,将内容从一列映射到rowid。因此,您可以定义

sorttype: function (cellValue, item) {
    return cellValue; // another value as cellValue can be returned
}
它为您提供了自定义排序的第一种方法。例如,您可以使用RegEx从
callValue
中提取“number”部分信息,并从
sorttype
返回它(您可以在
colModel
中为
notes
列定义该信息)。有关更多详细信息,请参见创建

第二种方法:在
colModel
中定义
sortfunc
回调。回调具有原型

sortfunc: function (a, b, direction) {
    // should return 0, 1 or -1
}
在旧版本的jqGrid和

sortfunc: function (a, b, direction, aItem, bItem) {
    // should return 0, 1 or -1
}
在。
sortfunc
允许您实现所需的任何自定义排序行为。有关代码示例,请参见创建