1

ノックアウト.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);
};

デフォルトのグリッド ビュー デフォルトのグリッド ビュー 並べ替えられた画像 1

ここに画像の説明を入力 並べ替えられた画像 2 ここに画像の説明を入力 ご覧のとおり、並べ替えの順序が正しくありません。私はこの号で 3 日間遊んでいます。

4

1 に答える 1

2

さて、私はこの問題の解決策を見つけました

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);
        };
于 2013-06-13T15:02:54.500 に答える