代码之家  ›  专栏  ›  技术社区  ›  Niels Bosma

flex:数据库驱动的数据报:箭头消失

  •  1
  • Niels Bosma  · 技术社区  · 16 年前

    在flex中,我使用以下代码来允许在数据报中进行排序(数据在服务器端分页和排序)。

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

    这非常有效,只是没有显示指示排序的箭头。我怎样才能做到?

    谢谢! 尼尔斯

    3 回复  |  直到 13 年前
        1
  •  5
  •   shadenite    16 年前

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

    看起来您需要刷新数据提供程序使用的集合。

        2
  •  1
  •   ili    13 年前

    我遇到了同样的问题,唯一的解决方案是重写数据报并创建一个自定义的数据报。 这是课程:

    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事件并设置列索引和方向信息时,必须特别调用placeSortArrow()方法。

        3
  •  0
  •   Mohan    15 年前

    在上面的代码中,“this”指的是DataGrid,因为我对this.query.sortfield感到困惑,所以我假设“this”和“query”是您自己的自定义对象。你为什么要查数?那算什么?

    当做 -莫汉