ExtJs 4.1 프레임 워크를 사용하고 있습니다. 하나의 열 (이름) 만 표시하는 표가 있습니다. 격자는 두 개의 필드 (Name 및 SortOrder)가있는 저장소와 연관됩니다. 상점의 "name"필드는 격자의 이름 열과 연관됩니다. 저장소의 SortOrder 필드에서 사용할 수있는 값을 기반으로 이름 열을 정렬하려고합니다. 그러한 논리를 어떻게 구현할 수 있습니까?ExtJs 4.1 그리드의 다른 열을 기반으로 한 열 정렬
감사합니다
ExtJs 4.1 프레임 워크를 사용하고 있습니다. 하나의 열 (이름) 만 표시하는 표가 있습니다. 격자는 두 개의 필드 (Name 및 SortOrder)가있는 저장소와 연관됩니다. 상점의 "name"필드는 격자의 이름 열과 연관됩니다. 저장소의 SortOrder 필드에서 사용할 수있는 값을 기반으로 이름 열을 정렬하려고합니다. 그러한 논리를 어떻게 구현할 수 있습니까?ExtJs 4.1 그리드의 다른 열을 기반으로 한 열 정렬
감사합니다
이 같은 의미합니까 :
...
columns: [{
header: 'Name',
dataIndex: 'Name',
sortable: true,
doSort: function(state){
var ds = this.up('tablepanel').store;
ds.sort({
property: 'SortOrder',
direction: state
});
}
....
}]
또한 약간의 간단한 해결책이있다 :
... columns: [{ header: 'Name', dataIndex: 'Name', sortable: true, getSortParam: function() { return 'SortOrder'; } ... }] ...
그래서 그 대신 doSort을 (재정의) 그냥 덮어 쓸 수를 getSortParam() 메소드 (doSort()가 사용함).
헤더를 클릭 할 때 또 다른 방법이 있습니다.
columns: [
{
header: 'Name',
dataIndex: 'Name',
listeners: {
headerclick: function() {
var store = this.up('grid').getStore();
store.sort({
property: 'SortOrder',
direction: this.sortState
});
}
}
}
]
감사합니다 .... 왜 "doSort"를 Ext.grid.column.Column의 설명서에 넣지 않았는지 궁금합니다. +1 – T1000
Ext.grid.column.Column.doSort()는 내부 처리에 사용되는 개인용 메서드이므로 일반적으로 사용하지 않는 것이 좋습니다. 따라서 문서를 구체적으로 검색하거나 비공개 기능을 볼 수있는 경우가 아니면 문서가 표시되지 않습니다. – Yetti