Apache flex flex datagrid-项目呈现器和跳过行

Apache flex flex datagrid-项目呈现器和跳过行,apache-flex,datagrid,Apache Flex,Datagrid,嗨 我有一个带有6列的datagrid,每个列都有自己的项目渲染器。在第一列中,我希望能够检查该列是否包含一些有效数据,如果不包含,则我希望跳过这一行并转到下一行。换句话说,我需要一种方法来告诉我的datagrid停止处理当前数据对象的其余项呈现器,并跳到下一个。有什么想法吗 我认为最好的选择是在ListCollectionView对象(如ArrayCollection)上使用属性。这允许您在数据网格中显示之前过滤掉不想在数据网格中显示的对象,并且应该避免对任何ItemRenders进行处理。如


我有一个带有6列的datagrid,每个列都有自己的项目渲染器。在第一列中,我希望能够检查该列是否包含一些有效数据,如果不包含,则我希望跳过这一行并转到下一行。换句话说,我需要一种方法来告诉我的datagrid停止处理当前数据对象的其余项呈现器,并跳到下一个。有什么想法吗

我认为最好的选择是在ListCollectionView对象(如ArrayCollection)上使用属性。这允许您在数据网格中显示之前过滤掉不想在数据网格中显示的对象,并且应该避免对任何ItemRenders进行处理。

如果您仍然希望“跳过”对象显示在数据网格中,只需更改ItemRenders对其的响应方式,然后需要在渲染器中为此编写代码

在项目渲染器内部,可以访问前面列的数据值。您应该检查项目呈现器中可用的listData属性,并使用您的发现来配置项目呈现器的显示方式

您可以在此处找到有关listData的信息:

要检查以前的值,可以编写如下代码:

var dgListData:DataGridListData = DataGridListData( listData );

// Process all columns before the current one.
for ( var i:int = 0; i < dgListData.columnIndex; i++)
{
    // Do something here to examine previous data

    // If we should stop processing based on previous values
    // then hide everything inside of this renderer (perhaps
    // move to a state name 'empty' that has no children), else
    // move to the state that renders something.
    currentState = shouldSkipObject ? 'empty' : 'normal';
}
var-dgListData:DataGridListData=DataGridListData(listData);
//处理当前列之前的所有列。
对于(var i:int=0;i
如果您需要在项目呈现器内部编写代码的更具体帮助,请提供数据网格内部数据的示例以及项目呈现器实际应执行的操作的说明