我有一個DataGrid組件,我想每5秒更新一次。當行被添加到這個DataGrid中時,我注意到每次更新都會導致它將滾動條位置重置到頂部。我如何設法將滾動條保持在原來的位置?如何在不向上滾動的情況下綁定DataGrid組件?
1
A
回答
1
我寫了一個小的擴展類DataGrid
基於this article。它似乎很好。
public final class DataGridEx extends DataGrid
{
public var maintainScrollAfterDataBind:Boolean = true;
public function DataGridEx()
{
super();
}
override public function set dataProvider(value:Object):void {
var lastVerticalScrollPosition:int = this.verticalScrollPosition;
var lastHorizontalScrollPosition:int = this.horizontalScrollPosition;
super.dataProvider = value;
if(maintainScrollAfterDataBind) {
this.verticalScrollPosition = lastVerticalScrollPosition;
this.horizontalScrollPosition = lastHorizontalScrollPosition;
}
}
-1
這些可能幫助:
Maintain Scroll Position after Asynchronous Postback
Maintaining Scroll Position on Postback(滾動進一步向下閱讀本)
+0
(-1)我正在使用Flex - 而不是ASP.Net。 – 2009-11-28 12:05:57
+1
當!不知何故,我的眼睛讀取數據網格並過濾flex。 :P – 2009-11-28 12:24:02
1
使變量來存儲你的最後滾動位置並使用它。
大致是這樣的:
var lastScroll:Number = 0;
private function creationCompleteHandler(event:FlexEvent):void{
stage.addEventListener(MouseEvent.MOUSE_UP, updateLastScroll);
}
private function updateLastScroll(event:MouseEvent):void{
lastScroll = myDataGrid.verticalScrollPosition
}
private function dataGridHandler(event:Event):void{
myDataGrid.verticalScrollPosition = lastScroll;
}
這是不是最好的代碼,但它說明了這一點,只要有人完成了滾動事件,你存儲在變量中的最後一個位置,你用它來恢復滾動位置在添加新數據之後。
0
我還沒有測試此代碼,但它應該工作:
var r:IListItemRenderer;
var len:Number = dataGrid.dataProvider.length;
var i:Number;
//indexToItemRenderer returns null for items that are not visible
for(i = 0; i < len; i++)
{
r = dataGrid.indexToItemRenderer(i);
if(r)
break;
}
//now i contains the first visible item - store this in a variable
lastPos = i;
//update the dataprovider here.
//now scroll to the position
dataGrid.scrollToIndex(lastPos);
相關問題
- 1. 如何在不滾動的情況下觸發滾動事件
- 2. DataGrid上的雙向綁定
- 3. 如何在jQuery或Javascript中將箭頭綁定到「向上滾動」和向下箭頭以「向下滾動」?
- 4. 如何在沒有項目的情況下滾動瀏覽DataGrid列?
- 5. 在不滾動的情況下在listView上顯示圖像?
- 6. 如何在不卸載組件的情況下隱藏組件?
- 7. 如何在不剪裁的情況下關閉滾動條?
- 8. 如何在不打開Visual Studio的情況下綁定項目
- 9. 如何在不使用MVVM的情況下綁定DependencyProperty
- 10. 如何在關注輸入框的情況下向下滾動頁面?
- 11. 如何在不更改URL的情況下重定向頁面?
- 12. 如何在不重寫URL的情況下重定向頁面?
- 13. 如何在不重定向的情況下執行href
- 14. 如何在不使用DependencyProperty的情況下綁定到DataContext上的屬性?
- 15. UIScrollView如何在滾動/抖動的情況下滾動得如此之好?
- 16. 如何在不滾動iframe的情況下重新定位內容?
- 17. 爲什麼Run.Text在默認情況下是雙向綁定的?
- 18. 如何在不丟失觸摸事件的情況下凍結UIScrollView滾動
- 19. 我如何能在另一頁上重定向向下滾動
- 20. 如何在不瀏覽文件的情況下上傳文件?
- 21. 如何在不綁定工具的情況下使用Windows ToolTip控件
- 22. 如何在不破壞控件模板的情況下綁定屬性?
- 23. 如何自動使DIV內容滾動在這種情況下
- 24. 如何在平滑滾動的情況下向UItableview添加新行
- 25. 如何在不更改URL的情況下重定向到移動版網站?
- 26. 在滾動網格的情況下gridview的情況下的重複圖像?
- 27. 向上滾動/向下滾動jquery
- 28. 如何在沒有Bg圖像的情況下滾動Unity ScrollView?
- 29. 在這種情況下,如何使用android中的滾動條?
- 30. RecycleView:如何在沒有滾動的情況下轉到一行
謝謝!您的代碼幫助我將3個不同的數據網格滾動條同步到同一行。 保存我的數據... – 2011-10-06 20:35:49