Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 Flex DataGrid Spark HeaderRenderer排序图标_Actionscript 3_Flash_Apache Flex_Flex Spark - Fatal编程技术网

Actionscript 3 Flex DataGrid Spark HeaderRenderer排序图标

Actionscript 3 Flex DataGrid Spark HeaderRenderer排序图标,actionscript-3,flash,apache-flex,flex-spark,Actionscript 3,Flash,Apache Flex,Flex Spark,我试图在我的DataGrid中为我的一列设置一个图标。我初始化了DataGrid,并将列如下所示: <s:GridColumn dataField="Test" itemRenderer="ColorGradientItemRenderer" sortCompareFunction="numeric_sort('Test')"> <s:headerRenderer> <fx:Compon

我试图在我的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渲染器文件,那就太好了。

您需要在自定义标题外观中对defaultSortIndicator进行外观设计。查看此问题:

您可以使用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];
        }
    }
}
公共函数PlaceSortIndicator(columnIndex:uint,descending:Boolean):void
{
如果(columnIndex>=0&&columns!=null&&columns.length>columnIndex)
{
var column:GridColumn=columns.getItemAt(columnIndex)作为GridColumn;
if(列!=null)
{
column.sortDescending=递减;
if(columnHeaderGroup)
columnHeaderGroup.VisibleSortIndicationIndications=新建[columnIndex];
}
}
}

既然您正在创建一个定制的headerRenderer,我想就由您来实现这个小箭头。由于您正在扩展DefaultGridHeaderRenderer,我怀疑您的图像掩盖了箭头。我猜,但我打赌如果在渲染器上使用creationComplete,并使用setChildIndex将图像设置为索引0;箭头将会出现。不是很优雅,但可能是功能性的。我试着改变深度,但实际上没有效果。还尝试将图像向左移动并按字母顺序向下-箭头未显示。奇怪的是,它好像超过了箭头。我最终为渲染器创建了新文件。。。有点烦人,但你能做什么