Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 使用自定义值在剑道网格中排序_Sorting_Kendo Grid_Gridview Sorting - Fatal编程技术网

Sorting 使用自定义值在剑道网格中排序

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

需要帮助在kendoGrid中按天对这些json结果进行排序。我需要一种方法把加号转换成.5或者类似的东西。我想我必须循环每一个,如果我找到加号,然后将值更改为数字.5,然后在显示之前将新值放回

{ 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,然后以这种方式显示。思想?