2010-11-23 9 views
1

dataprovider에 동일한 값 ({ "A", "A", "B"})이 2 포함되어있는 경우, "A"를 포함하는 모든 행 위로 마우스를 가져 가면 "A "강조 표시됩니다.플렉스 DataGrid/DataProvider 버그?

누구든지이 문제를 알고 계십니까?

+0

나는 이런 식으로 본 적이 없습니다. 코드가 어떻게 생겼지? – wajiw

+0

ArrayCollection에 바인드 된 단순한 데이터 격자 객체. 그런 다음 ArrayCollection에 중복 문자열을 추가합니다. –

+1

http://jonathanbranam.net/solutions/datagrid-highlights-wrong-row –

답변

2

Whydna 공유 한 게시물이 옳은 트랙 http://jonathanbranam.net/solutions/datagrid-highlights-wrong-row입니다. 이것이 플래시/플렉스를 혼란스럽게 만드는 이유는 데이터 그 리드가 평등을 사용하여 행에 대한 일치를 발견했을 때를 판단하기 때문입니다. 이것은 엄격한 평등성 (===)을 사용하도록 프레임 워크를 패치함으로써 해결할 수 있지만 더 좋은 대답은이 게시물이 제안하고이 문제의 위험이 없도록 객체에 값을 래핑 할 때 수행하는 것입니다. 링크의 예와 같이 여러 개의 동일한 객체를 추가 한 경우에도 동일한 동작이 나타납니다. 여기에 필요한 것을 가지고 있는지 확인하기위한 실례가 있습니다.

<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>