Flex DataGrid / DataProvider错误?

时间:2010-11-23 18:03:45

标签: flex actionscript-3 actionscript

创建数据网格和数据提供者,如果数据提供者包含2个相同的值({“A”,“A”,“B”}),当您将鼠标悬停在包含“A”的任何行上时,所有行都包含“ “也将突出显示。

其他人是否注意到此问题?

1 个答案:

答案 0 :(得分:2)

通过您分享的帖子http://jonathanbranam.net/solutions/datagrid-highlights-wrong-row,您正走在正确的轨道上。这是令flash / flex混淆的原因是datagrid使用相等来确定何时找到一行匹配。这可以通过修补框架来使用严格相等(===)来解决,但现在更好的答案是按照帖子建议的那样做并将你的值包装在一个对象中,这样就不存在这个问题的风险。如果添加了几个相同的对象,您也会看到相同的行为,如链接中的示例所示。这是一个确保您拥有所需内容的工作示例。

<mx:DataGrid id="dataGrid" dataProvider="{gridData}" creationComplete="init()">
    <mx:columns>
        <mx:DataGridColumn dataField="title" headerText="Title" />
    </mx:columns>
</mx:DataGrid>

<mx:Script>
    <![CDATA[
        import mx.collections.ArrayCollection;

        [Bindable] private var gridData:ArrayCollection;    

        protected function init():void
        {
            gridData = new ArrayCollection();

            for(var i:uint = 0; i < 10; i++)
            {
                gridData.addItem({title: "This is an item"});   
            }

        }

    ]]>
</mx:Script>