2010-11-23 166 views
1

如果数据提供者包含2个具有相同值({“A”,“A”,“B”})的数据网格和数据提供者,当您将鼠标悬停在包含“A”的任何行上时, “也将突出显示。Flex DataGrid/DataProvider错误?

其他人注意到这个问题?

+0

我从来没有见过这样的事情。你的代码是什么样的? – wajiw 2010-11-23 18:14:46

回答

2

Whydna你在正确的轨道上与你分享的帖子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>