2010-11-23 96 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>