Sorting 显示意外结果的排序

Sorting 显示意外结果的排序,sorting,gridview,knockout.js,Sorting,Gridview,Knockout.js,我正在用knockout.js对网格进行排序。下面是我的排序函数 this.sortByName = function() { var event = arguments[1]; var targeElement = event.originalTarget; // console.info(targeElement); console.log(targeElement.attributes[1].nodeValue); order = 'sorting'; configuratio

我正在用knockout.js对网格进行排序。下面是我的排序函数

this.sortByName = function() {
var event = arguments[1];
var targeElement = event.originalTarget;
// console.info(targeElement);
console.log(targeElement.attributes[1].nodeValue);

order   =   'sorting';

configuration.data.sort(function(a, b) {
        if(a.name<b.name){
                order   =   'sorting_desc';
                    return a.name > b.name ? -1 : 1;
        }
        else if(a.name>b.name){
            order   =   'sorting_asc'
            return a.name < b.name ? -1 : 1;
            }


});

$(targeElement).removeClass('sorting_asc sorting_desc').addClass(order);
};
this.sortByName=function(){
var事件=参数[1];
var targetElement=event.originalTarget;
//控制台信息(targetElement);
console.log(targetElement.attributes[1].nodeValue);
顺序='排序';
配置.数据.排序(函数(a,b){
如果(a.名称b.名称?-1:1;
}
else if(a.name>b.name){
订单='sorting_asc'
返回a.name
默认情况下,将显示栅格视图 排序后的图像为1

排序后的图像2
正如您所看到的,排序顺序不正确。我在这个问题上已经玩了3天了。

我找到了解决这个问题的方法

this.sortByName = function() {
     currentOrder = arguments[0].sortClass();
     var sortColumn = arguments[0].rowText;
     if(currentOrder =='sorting' || currentOrder =='sorting_desc'){

         currentOrder='sorting_asc';

             configuration.data.sort(function(a, b) {

               if (a[sortColumn] == b[sortColumn])
                    return 0;
                else if (a[sortColumn] < b[sortColumn])
                    return -1;
                else
                    return 1;

            });
             }else{
                 currentOrder='sorting_desc';
                 configuration.data.sort(function(a, b) {
                        if (a[sortColumn] == b[sortColumn])
                            return 0;
                        else if (a[sortColumn] > b[sortColumn])
                            return -1;
                        else
                            return 1;

                    }); 
             }
             self.resetSortColumns();
            arguments[0].sortClass(currentOrder);
        };
this.sortByName=function(){
currentOrder=参数[0]。sortClass();
var sortColumn=参数[0]。行文本;
if(currentOrder=='sorting'| | currentOrder=='sorting_desc'){
currentOrder='sorting_asc';
配置.数据.排序(函数(a,b){
如果(a[sortColumn]==b[sortColumn])
返回0;
else if(a[sortColumn]b[sortColumn])
返回-1;
其他的
返回1;
}); 
}
self.resetSortColumns();
参数[0]。sortClass(currentOrder);
};