在挠我使用的是以下代码,允许排序在一个数据表格(数据调和排序的服务器端).

        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();
        }

这个完美的作品,除非那个箭头指示的排序并不是所示。我怎么完成?

谢谢!/尼尔斯

有帮助吗?

解决方案

有一个例子在这里如果这是你在找什么:http://blog.flexexamples.com/2008/02/28/displaying-the-sort-arrow-in-a-flex-datagrid-control-without-having-to-click-a-column/

看起来你需要刷新集合使用的数据.

其他提示

我也遇到同样的问题,我发现的唯一的解决办法是重写数据网格和创建自定义之一。 下面是类:

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();
    }

}

您必须专门调用placeSortArrow()方法时,你得到HEADER_RELEASE事件并设置列索引和方向的信息。

在上面的代码是什么“这”指的是数据网格,因为我感到困惑this.query.SortField,我假设“本”和“查询”是你自己的自定义对象。和你为什么要检查为计数。什么计数是

此致 -Mohan

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top