【问题标题】:Flex DataGrid Spark HeaderRenderer Sort IconFlex DataGrid Spark HeaderRenderer 排序图标
【发布时间】:2013-05-21 15:22:51
【问题描述】:

我想在我的 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 渲染器文件来执行此操作,那就太好了。

【问题讨论】:

  • 由于您正在创建自定义 headerRenderer,我认为由您来实现小箭头。由于您正在扩展 DefaultGridHeaderRenderer,我怀疑您的图像覆盖了箭头。我猜,但我敢打赌,如果您在渲染器上使用 creationComplete 并使用 setChildIndex 将图像设置为索引 0;箭头会出现。不优雅,但可能很实用。
  • 我实际上尝试改变深度,没有奏效。还尝试将图像向左移动并向下倾斜 - 箭头没有出现。奇怪的是,它就像压倒了箭头。我最终为渲染器制作了新文件......有点烦人,但你能做什么

标签: actionscript-3 flash apache-flex flex-spark


【解决方案1】:

您需要在自定义标题皮肤中设置 defaultSortIndicator 皮肤。看到这个问题:want to display custome sort indicator in spark DataGrid?

【讨论】:

    【解决方案2】:

    您可以使用数据网格的 sortByColumns 方法,或者扩展数据网格并将此方法添加到其中:

    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];
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-08-21
      • 1970-01-01
      • 2023-04-11
      • 1970-01-01
      • 1970-01-01
      • 2010-10-17
      • 2013-10-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多