Flex : 데이터베이스 구동 Datagrid : 화살표가 사라집니다
-
11-07-2019 - |
문제
Flex에서는 다음 코드를 사용하여 Datagrid에서 정렬 할 수 있습니다 (데이터는 PAGED 및 정렬 된 서버 사이드).
private function headerReleaseHandler(event:DataGridEvent):void { var column:DataGridColumn = DataGridColumn(event.currentTarget.columns[event.columnIndex]); if(this.count>0) { if(this.query.SortField == column.dataField) { this.query.SortAscending = !this.query.SortAscending; } else { this.query.SortField = column.dataField; this.query.SortAscending = true; } this.fill(); } event.preventDefault(); }
이것은 정렬을 나타내는 화살표가 표시되지 않는 것을 제외하고는 완벽하게 작동합니다. 어떻게 달성 할 수 있습니까?
감사! /Niels
해결책
이것이 당신이 찾고있는 것이라면 여기에 예가 있습니다.http://blog.flexexamples.com/2008/02/28/displaying-the-sort-arrow-in-a-flex-datagrid-control-without-aving-to-click-column/
Dataprovider가 사용하는 컬렉션을 새로 고치는 것 같습니다.
다른 팁
나는 같은 문제를 겪었고 내가 찾은 유일한 해결책은 Datagrid를 무시하고 사용자 정의를 만드는 것이 었습니다. 수업은 다음과 같습니다.
public class DataGridCustomSort extends DataGrid
{
public function DataGridCustomSort()
{
super();
addEventListener(DataGridEvent.HEADER_RELEASE,
headerReleaseHandlerCustomSort,
false, EventPriority.DEFAULT_HANDLER);
}
public function headerReleaseHandlerCustomSort(event:DataGridEvent):void {
mx_internal::sortIndex = event.columnIndex;
if (mx_internal::sortDirection == null || mx_internal::sortDirection == "DESC")
mx_internal::sortDirection = "ASC";
else
mx_internal::sortDirection = "DESC";
placeSortArrow();
}
}
Header_Release 이벤트를 받고 열 인덱스 및 방향 정보를 설정할 때 PlaceortArrow () 메소드를 구체적으로 호출해야합니다.
위의 코드에서 "this"는 this.query.sortfield에 의해 혼란스러워지기 때문에 "이것"을 참조하는 것은 Datagrid입니다. 'this'와 "query '가 자신의 사용자 정의 객체라고 가정합니다. 그리고 계산을 확인하는 이유는 무엇입니까? 그 점은 무엇입니까?
고려 -Mohan
제휴하지 않습니다 StackOverflow