2011-08-09 4 views
1

DataProvider (ArrayCollection)를 업데이트하면 내 Flex 데이터 격자가 자동으로 이 스크롤되어 위로으로 스크롤됩니다. 나는 이 일이 일어나기를 원하지는 않지만 여전히 필요합니다. 모든으로 업데이트됩니다. 고객의 관리 시스템을위한 세미 실시간 대시 보드를 개발 중입니다. 자주 업데이트됩니다. 업데이트 할 때마다 맨 위로 스크롤하면 사용하기가 매우 어려워지고 좌절 할 것입니다.DataProvider에서 Flex DataGrid 자동 스크롤 변경

나는 이것을 방지하기 위해 다음과 같은 기술을 사용하려고 시도했지만 아무도 효과가 없습니다.

dataProvider = updatedDataProvider; 
dataProvider.updateItem(dataProvider); 

dataProvider.source = updatedDataProvider.source; 
dataProvider.updateItem(dataProvider); 

내가 자리에 세로 스크롤 막대를 개최 마우스 이벤트를 전달하려고 시도했습니다, 나는 장소에 수직 스크롤 위치 값 (저장 및 재 할당) 잠금을 시도 ...

그리고 한 많은 사람들이 내 머리 속으로 쏟아져 나간 것은 처음 몇 개뿐입니다. 누구든지 아이디어가 있습니까?

+0

Spark 또는 MX DataGrid를 사용하고 있습니까? dataProvider를 바꿀 경우; Flex는 "Destroys"의 모든 것을 표시하고 다시 생성하기 때문에 이것은 예상됩니다. 그러나 기존 ArrayCollection에 새 항목을 추가하는 경우 선택한 항목/스크롤 위치가 유지되어야합니다. – JeffryHouser

+0

@ www.Flextras - MX. 태그에서 Flex 3. 그리드의 기본 작동을 이해합니다. 나는 그것이 다르게 작동하기를 원한다. 내가 .removeAll()을 추천하고 각 항목을 추가 하시겠습니까? –

+1

모두 제거하는 것이 아닙니다. 새 항목을 dataProvider에 추가하거나 업데이트해야하는 항목을 대체하기 만하면됩니다. DataGrid의 컬렉션 변경 핸들러는 스크롤 위치를 유지하면서 그리드를 업데이트해야합니다 (그리고 selectedItems을 믿습니다). 그러나 dataProvider의 모든 항목을 업데이트/교체하는 경우; 가장 좋은 방법은 바꾸기 전에 스크롤 위치를 저장 한 다음 바꾼 후에 설정하는 것입니다. 비록 그것이 이상한 사용자 경험을 일으킬 것이라고 생각합니다. – JeffryHouser

답변

2

이미 How do I maintain selection in a DataGrid when the data changes?에 응답했습니다. 확인하십시오.

데이터 공급자간에 인덱스가 변경된 경우 (즉, 행이 위에 삽입 된 경우) 새 공급자에서 getItemIndex를 수행 할 수 있습니다.

+0

질문이 중복 된 경우; 정확한 중복으로 질문을 마무리하기 위해 투표하는 것이 적절하다고 생각됩니다. 나는 두 질문이 매우 비슷하다는 것에 동의한다; 가서 투표를 끝내고 투표했습니다. 당신도 똑같이해야합니다. – JeffryHouser

+0

Flextras에게 감사드립니다.하지만 저는 가까운 투표를하는 평판에 충실합니다. http://stackoverflow.com/privileges/close-questions – SuperSaiyen

+0

오, 죄송합니다. ;) 나는 사다리를 올라가는 길에 당신을 도우려고 범프를 줬다. :-) – JeffryHouser

-1

이전에 선택한 항목을 선택하고 ensureIndexIsVisible()을 사용하면 어떨까요?

+0

flex3 태그가 있습니다. –