문제

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top