Sorting 使用自定义值在剑道网格中排序
需要帮助在kendoGrid中按天对这些json结果进行排序。我需要一种方法把加号转换成.5或者类似的东西。我想我必须循环每一个,如果我找到加号,然后将值更改为数字.5,然后在显示之前将新值放回Sorting 使用自定义值在剑道网格中排序,sorting,kendo-grid,gridview-sorting,Sorting,Kendo Grid,Gridview Sorting,需要帮助在kendoGrid中按天对这些json结果进行排序。我需要一种方法把加号转换成.5或者类似的东西。我想我必须循环每一个,如果我找到加号,然后将值更改为数字.5,然后在显示之前将新值放回 { name: Alex, days: "2" }, { name: Jason, days: "1" }, { name: Fred, days: "2+" }, { name: Jane, days: "3" }, { name: John, days: "3+" } 这是我的代码 <bod
{ name: Alex, days: "2" },
{ name: Jason, days: "1" },
{ name: Fred, days: "2+" },
{ name: Jane, days: "3" },
{ name: John, days: "3+" }
这是我的代码
<body>
<div id="grid">
</div>
<div>
<script>
$(document).ready(function () {
//JSON data
var people = [
{ firstName: "Hasibul", lastName: "Haque", email: "hasibul2363@gmail.com", rank:"2" }
, { firstName: "Jane", lastName: "Smith", email: "jane.smith@kendoui.com", rank: "3+" }
, { firstName: "Jason", lastName: "Doe", email: "hasibul2363@gmail.com", rank: "1" }
, { firstName: "John", lastName: "doe", email: "hasibul2363@gmail.com", rank: "3+" }
, { firstName: "Joan", lastName: "doe", email: "hasibul2363@gmail.com", rank: "5" }
, { firstName: "Jack", lastName: "doe", email: "hasibul2363@gmail.com", rank: "3" }
, { firstName: "Jacob", lastName: "doe", email: "hasibul2363@gmail.com", rank: "3-" }
, { firstName: "Joe", lastName: "doe", email: "hasibul2363@gmail.com", rank: "3-" }
];
$('#grid').kendoGrid({
dataSource: {
type: "json",
data: people,
pageSize: 15,
sort: ({ field: "rank" })
},
sortable: true,
columns:[{
field: "rank",
sortable: {
compare: function (a, b, asc) {
var s1 = a.rank;
var s2 = b.rank;
var n1, n2;
var sg1, sg2;
var plus = s1.indexOf('+');
var minus = s1.indexOf('-');
if(plus >= 0){
n1 = parseInt(s1.substr(0, plus));
sg1 = 1;
}
else if(minus >= 0){
n1 = parseInt(s1.substr(0, minus));
sg1 = -1;
}
else{
n1 = parseInt(s1);
sg1 = 0;
}
plus = s2.indexOf('+');
minus = s2.indexOf('-');
if (plus >= 0) {
n2 = parseInt(s2.substr(0, plus));
sg2 = 1;
}
else if (minus >= 0) {
n2 = parseInt(s2.substr(0, minus));
sg2 = -1;
}
else {
n2 = parseInt(s2);
sg2 = 0;
}
if (n1 == n2) {
return sg2 - sg1;
} else {
return n2 - n1;
}
}
}
}]
,
pageable: {
buttonCount: 1
},
schema: {
data: "people"
}
//binding JSON data with grid
});
});
</script>
$(文档).ready(函数(){
//JSON数据
var people=[
{名字:“哈西布尔”,姓氏:“哈克”,电子邮件:hasibul2363@gmail.com,排名:“2”}
,{姓:“简”,姓:“史密斯”,电子邮件:“简。smith@kendoui.com,排名:“3+”}
{姓:“杰森”,姓:“能源部”,电子邮件:hasibul2363@gmail.com,排名:“1”}
,{姓:“约翰”,姓:“doe”,电子邮件:hasibul2363@gmail.com,排名:“3+”}
,{姓:“琼”,姓:“多伊”,电子邮件:hasibul2363@gmail.com,排名:“5”}
{姓:“杰克”,姓:“能源部”,电子邮件:hasibul2363@gmail.com,排名:“3”}
,{姓:“雅各布”,姓:“doe”,电子邮件:hasibul2363@gmail.com,排名:“3-”}
,{姓:“乔”,姓:“doe”,电子邮件:hasibul2363@gmail.com,排名:“3-”}
];
$(“#网格”).kendoGrid({
数据源:{
键入:“json”,
数据:人,
页面大小:15,
排序:({field:“rank”})
},
可排序:是的,
栏目:[{
字段:“等级”,
可排序:{
比较:功能(a、b、asc){
var s1=a.秩;
var s2=b.rank;
变种n1,n2;
变量sg1、sg2;
var plus=s1.indexOf('+');
var减号=s1.indexOf('-');
如果(加上>=0){
n1=parseInt(s1.substr(0,加));
sg1=1;
}
否则如果(减>=0){
n1=parseInt(s1.substr(0,负));
sg1=-1;
}
否则{
n1=parseInt(s1);
sg1=0;
}
plus=s2.indexOf('+');
减=s2.indexOf('-');
如果(加上>=0){
n2=parseInt(s2.substr(0,加));
sg2=1;
}
否则如果(减>=0){
n2=parseInt(s2.substr(0,负));
sg2=-1;
}
否则{
n2=parseInt(s2);
sg2=0;
}
如果(n1==n2){
返回sg2-sg1;
}否则{
返回n2-n1;
}
}
}
}]
,
可分页:{
按钮计数:1
},
模式:{
数据:“人”
}
//用网格绑定JSON数据
});
});
您已经尝试了什么?还没有,我想与社区分享,以防有人已经解决了这个问题。我计划尝试循环遍历每个对象,将+符号替换为.5,然后以这种方式显示。思想?