ext grid 對IP地址自定義排序

Ext.data.Store.prototype.applySort = function() {
        if(this.sortInfo && !this.remoteSort){ 
               var s = this.sortInfo, f = s.field; 
               var st = this.fields.get(f).sortType; 
               var fn = function(r1, r2){ 
                        var v1 = st(r1.data[f]), v2 = st(r2.data[f]);
                        //alert(v1+'--'+v2);
                        var re=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/g //匹配IP地址的正則表達式
                        if(re.test(v1)){
                            var a1 = parseInt(RegExp.$1);
                            var a2 = parseInt(RegExp.$2);
                            var a3 = parseInt(RegExp.$3);
                            var a4 = parseInt(RegExp.$4);
                            var re2=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/g //匹配IP地址的正則表達式
                            re2.test(v2)
                            var b1 = parseInt(RegExp.$1);
                            var b2 = parseInt(RegExp.$2);
                            var b3 = parseInt(RegExp.$3);
                            var b4 = parseInt(RegExp.$4);
                            //alert('i1:'+i1+';i2:'+i2);
                            if(a1 != b1){
                                return a1 > b1 ? 1 : -1;
                            }
                            if(a2 != b2){
                                return a2 > b2 ? 1 : -1;
                            }
                            if(a3 != b3){
                                return a3 > b3 ? 1 : -1;
                            }
                            if(a4 != b4){
                                return a4 > b4 ? 1 : -1;
                            }
                            return 0;
                        }
                           
                        if(typeof(v1) == "string"){  
                            return v1.localeCompare(v2);   
                        }
                        return v1 > v2 ? 1 : (v1 < v2 ? -1 : 0);  
                            
                }; 
               this.data.sort(s.direction, fn); 
               if(this.snapshot && this.snapshot != this.data){ 
                        this.snapshot.sort(s.direction, fn); 
                } 
        }
    };


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章