Flex DataGrid Spark HeaderRenderer排序图标

时间:2013-05-26 17:26:36

标签: actionscript-3 flash flex flex-spark

我正在尝试为DataGrid中的一个列添加一个图标。我初始化了DataGrid并将列放起来:

<s:GridColumn dataField="Test"
              itemRenderer="ColorGradientItemRenderer"
              sortCompareFunction="numeric_sort('Test')">
    <s:headerRenderer>
        <fx:Component>
            <s:DefaultGridHeaderRenderer chromeColor="0xFFFFFF">
                <s:Image source="@Embed('img/test.jpg')" width="75" height="75" />
            </s:DefaultGridHeaderRenderer>
        </fx:Component>
    </s:headerRenderer>
</s:GridColumn>

我在标题上看到图像很好,问题是当我点击要排序的图像时,指示排序方向的小箭头不会显示。我怎样才能让它显示出来?如果我可以在这里插入一些mxml内联并且不必创建多个mxml渲染器文件来执行此操作,那就太棒了。

2 个答案:

答案 0 :(得分:0)

您需要在自定义标题外观中设置defaultSortIndicator。请参阅此问题:want to display custome sort indicator in spark DataGrid?

答案 1 :(得分:0)

您可以使用datagrid的sortByColumns方法,或者扩展datagrid并将此方法添加到它:

public function PlaceSortIndicator(columnIndex:uint, descending:Boolean):void
{
    if(columnIndex >= 0 && columns != null && columns.length > columnIndex)
    {
        var column:GridColumn = columns.getItemAt(columnIndex) as GridColumn;
        if(column != null)
        {
            column.sortDescending = descending;
            if (columnHeaderGroup)
                columnHeaderGroup.visibleSortIndicatorIndices = new <int>[columnIndex];
        }
    }
}