Whydna Sie sind auf dem richtigen Weg mit dem Beitrag, den Sie geteilt http://jonathanbranam.net/solutions/datagrid-highlights-wrong-row. Der Grund dafür ist, dass flash/flex verwirrend ist, da das Datagrid die Gleichheit verwendet, um zu bestimmen, wann eine Übereinstimmung für eine Zeile gefunden wurde. Dies könnte behoben werden, indem das Framework mit strenger Gleichheit gepatcht wird (===), aber die bessere Antwort für den Moment ist zu tun, da dieser Beitrag Ihre Werte in einem Objekt suggeriert und umschließt, so dass kein Risiko für dieses Problem besteht. Sie werden auch das gleiche Verhalten sehen, wenn Sie mehrere identische Objekte hinzugefügt haben, wie das Beispiel auf dem Link zeigt. Hier ist ein Arbeitsbeispiel, um sicherzustellen, dass Sie haben, was Sie brauchen.
<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>
Ich habe noch nie so etwas gesehen. Wie sieht dein Code aus? – wajiw
Nur ein einfaches Datenrasterobjekt, das an eine ArrayCollection gebunden ist. Fügen Sie anschließend doppelte Zeichenfolgen zur ArrayCollection hinzu. –
http://jonathanbranam.net/solutions/datagrid-highlights-wrong-row –