當我更新dataProvider(ArrayCollection)時,我的Flex數據網格自動彈出滾動到頂部。我不希望發生這種情況,但我仍然想要所有的對象更新。我正在爲客戶的管理系統開發一個半實時的儀表板,並經常更新。如果它每次更新都滾動到頂部,則使用起來會非常困難和令人沮喪。Flex DataGrid在dataProvider上自動滾動更改
我試圖使用以下技術來防止這種情況,沒有工作。
dataProvider = updatedDataProvider;
dataProvider.updateItem(dataProvider);
dataProvider.source = updatedDataProvider.source;
dataProvider.updateItem(dataProvider);
我打算派一個鼠標事件舉行的地方垂直滾動條,我試圖鎖定到位(保存和重新分配)垂直滾動條位置值...
而且許多其他人,這些只是我腦海中的第一批。有人有主意嗎?
您是使用Spark還是MX DataGrid?如果你替換dataProvider;那麼這是預期的,因爲Flex「銷燬」顯示的所有內容並重新創建它。但是,如果您只是將新項目添加到現有的ArrayCollection上,則應保留所選項目/滾動位置。 – JeffryHouser
@ www.Flextras - MX。 Flex 3中的標籤。我瞭解網格的基本操作。我希望它以不同的方式工作。你是否推薦我.removeAll()然後添加每個項目? –
我並不是說要全部刪除。只需將您的新項目添加到dataProvider或替換那些需要更新的項目。 DataGrid的集合更改處理程序應更新網格,同時保持滾動位置(我相信selectedItems)。但是,如果您正在更新/替換dataProvider中的所有項目;那麼最好的辦法是在替換之前存儲滾動位置,然後在替換之後進行設置。雖然我認爲這會導致奇怪的用戶體驗。 – JeffryHouser