2013-07-19 1 views
0

koGrid 2.1.1 기본 정렬을 수행 할 수 없었습니다. 즉, 특정 열/방향으로 그리드를 정렬하려는 경우 예상되는 동작을 얻는다. koGrid의 기본 정렬은 sortOnfo에 의해 처음으로 gridOptions를 구성하면서 수행됩니다.KoGrid : 기본 정렬이 작동하지 않습니다.

나는이 문제를 나타내는 jsFiddle을 사용하여 예제를 만들었습니다. 목록을 이름순으로 정렬하지 않았 음을 알 수 있습니다. sortInfo을 지정했습니다. 정렬 정보와

1. 초기화 koGrid :

 this.gridOptions = { 
      data: self.myData, 
      ... 
      sortInfo: ko.observable({ 
       column: { "field": "name" }, 
       "direction": "asc" 
      }) 
      ... 
     }; 

2. 공지 사항 목록 정렬하지되며, 둘 화살표가 표시되고 :

enter image description here

답변

2

나는 변경 koGrid 2.2.1 debug js 지정된 경우 sortInfo를 사용합니다. sortInfo 및 찾기 위해

window.kg.Grid = function (options) { 
... 
self.columnByField = function (field) { 
     if(field) { 
      var column; 
      $.each(self.columns(), function (i, c) { 
       if(field == c.field) { 
       column = c; 
       return false; 
       } 
      }); 
      return column; 
     } 
    } 
... 
} 

2. 변경된 그리드 개체 초기화 방법 :

1. 그리드 객체로 필드에 의해 열을 반환하는 함수를 만든 다음과 같이 기본적으로, 나는 두 가지를 변경했다 열을 정렬 :

window.kg.Grid = function (options) { 
... 
self.init = function() { 
    ... 
    self.buildColumns(); 
    var sortingProperties = self.sortInfo.peek(); 
    if(sortingProperties) { 
     var col = self.columnByField(sortingProperties.column.field); 
     if(col) { 
     col.sortDirection(sortingProperties.direction === ASC ? DESC : ASC); 
     col.sort(); 
     } 

    } 
    ... 
} 
... 
} 

이렇게하면 기본 정렬 문제가 해결됩니다. 포크 project on GitHub을 생성하고 거기에 새로운 디버그 js 파일을 추가했습니다. 당신이 아주 처음으로 그리드를로드 할 때

이제 아래 이미지로 정렬 작품을 보여줍니다

.... 
    sortInfo: this.sortDetails; 
    } 

이 기능 sortDetails 정의 아래 같은 gridOption sortInfo에 대한

enter image description here

0

추가 기능 아래처럼

this.sortDetails.subscribe(function (data) { 
     this.sortData.sort(function (left, right) { 
      return left == right ? 0 : (left < right ? -1 : 1); 
     }); 
    });