这是之前我发的一个贴子问题描述:http://q.cnblogs.com/q/53469/

问题:当点击了页面的刷新后,滚动条总是回到了最上面的位置,无法保持与之前的位置一样

解决问题的方法:

在点击Refresh的时候保存verticalScrollPosition 和horizontalScrollPosition 的值, 当刷新完后查询了新的数据后设置dataGrid 的verticalScrollPosition 等于之前保存的值,这个方法原本是正确的,但是在我的UI却一直没有效果。后来想的办法是我设置了一个定时器 private var setScrollPos:Timer = new Timer(50);

当刷新完回到前台处理完数据后,启用这个定时器,调用setScrollPos方法给DataGrid的scrollbar的verticalScrollPosition赋值

这个方法是当查询完数据后返回到前台,前台处理数据的方法

private function enablePanle(e:Event):void
        {
            monitor_grid_container.enabled = true;
            //when completed fetch runs arrived, validate which run should be expand.
            if(isRefresh)
            {
                for each(var runBean:RunBean in model.runBeans)
                {
                    for each(var openRunBean:RunBean in openRunBeans)
                    {
                        if(runBean.wkfName == openRunBean.wkfName)
                            runs_grid_datagrid.expandItem(runBean,true);
                        
                        if(runBean.childRunBeans)
                        {
                            for each(var childRunBean:RunBean in runBean.childRunBeans)
                            {
                                if(openRunBean.wkfName == childRunBean.wkfName)
                                    runs_grid_datagrid.expandItem(childRunBean,true);
                            }
                        }
                    }                            
                }
            }
            refresh_button.enabled = true;
            var hDataProvider:HierarchicalData = new HierarchicalData(model.runBeans);
            hDataProvider.childrenField = "childRunBeans";
            runs_grid_datagrid.dataProvider = hDataProvider;
            if (model.runBeans.length != 0)
                runs_grid_datagrid.contextMenu = buildMatrixContextMenu();
            
            buildInfo();
            setScrollPos.addEventListener(TimerEvent.TIMER, setScollPos);
            setScrollPos.start();
        }

public function setScollPos():void
 {
            arguments;
            runs_grid_datagrid.verticalScrollPosition = myVerPos;
            setScrollPos.stop();
 }

今天又找了一种实现方法,不必声明定时器, flex有一个自带的方法callLater可以实现,关于此方法的学习:http://help.adobe.com/zh_CN/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7b06.html

在我的项目中: 把以上的红色字体的代码改正为 callLater(setScollPos);

Flex UI刷新后保持DataGrid中的ScrollBar的位置不变的更多相关文章

  1. 解决刷新页面vuex store中数据丢失的问题

    **问题背景:**页面刷新后,vuex中的数据丢失.这是因为:js代码是运行在内存中的,代码运行时的所有变量.函数也都是保存在内存中的.进行刷新页面的操作,以前申请的内存被释放,重新加载脚本代码,变量 ...

  2. EF DBContext中DbSet中Hashset添加对象后,DataGrid UI没有刷新的问题

    使用EF4/5添加数据库视图生成DBContext,如果数据表/对象之间有M-N对应关系,EF对自动添加引用类集合,是Hashset类型.由于不是ObservableCellection类型,在引用类 ...

  3. EasyUi DataGrid中数据编辑方式及编辑后数据获取,校验处理

    EasyUi中的DataGrid提供前台编辑的相关函数. 实现客户选中DataGrid中一列后,对选中列中的一个字段进行编辑,并对数据进行实时校验后,传递至后台保存的需求, 主要涉及到DataGrid ...

  4. koa中返回404并且刷新后才正常的解决方案

    概述 这几天学习koa2,有一些心得,记录下来,供以后开发时参考,相信对其他人也有用. 起因 这几天学习koa2,写的代码执行时有一个奇怪的bug:明明能够返回数据,却有时正常返回数据,有时偏偏给你返 ...

  5. IE11浏览器中的My97日历控件刷新后无法打开问题解决办法

    IE11浏览器中的My97日历控件刷新后无法打开问题解决办法   IE11浏览器中的My97日历控件刷新后无法打开问题解决办法:(谷歌浏览器下正常.IE11失效) 解决办法:1:找到WdatePick ...

  6. easyui datagrid 中序列化后的日期格式化

    1.在easyui datagrid 中序列化后的日期显示为:/Date(1433377800000)/ 2.格式化后的显示为: 2015-06-04 08:30:00 3.使用代码如下: 3.1. ...

  7. EasyUI实现图片的上传后与其他文本框的提交以及DataGrid中图片的展示

    图片即文件,在jsp中文件上传很简单,一个type为file的input,一个form指定enctype为multipart/form-data,通过post提交到后台利用apache的commons ...

  8. eaysui 子页面刷新父页面datagrid

    近期碰到这样一个问题,子页面操作后需要刷新父页面datagrid元素,刚开始用这种方式刷新,$("#talbe",window.parent.document).datagrid( ...

  9. 在EasyUI的DataGrid中嵌入Combobox

    在做项目时,须要在EasyUI的DataGrid中嵌入Combobox,花了好几天功夫,在大家的帮助下,最终看到了它的庐山真面: 核心代码例如以下: <html> <head> ...

随机推荐

  1. 永无BUG 注释

    /** *                   _ooOoo_ *                  o8888888o *                  88" . "88 ...

  2. 1698-Just a Hook 线段树(区间替换)

    Just a Hook Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  3. EF更新时出错,An error occurred while updating the entries. See the inner exception for details

           在使用EF进行更新数据时出错,报出的异常是 "An error occurred while updating the entries. See the inner excep ...

  4. js学习日记-new Object和Object.create到底干了啥

    function Car () { this.color = "red"; } Car.prototype.sayHi=function(){ console.log('你好') ...

  5. 关于ArrayList add()方法 中的引用问题

    ArrayList的add方法每次添加一个对象时,添加 的是一个对象的引用,比如进行循环操作10次  lists.add(a) 每次 a会改变 ,这时候你会发现你在lists里添加了10个相同的对象a ...

  6. Linux shell 整数运算 let [ ] (( )) expr以及 浮点数 bc用法(转)

    Abstract : 1)  Linux shell 中使用 let , [ ] ,(( )) 三种运算符操作 shell 变量进行简单的基本运算:2)Linux shell 中使用 expr 与 b ...

  7. spring mvc:实现给Controller函数传入list<pojo>参数

    [1]前端js调用示例: ...insertStatisData?statisDatas=[{'cid':'2','devId':'9003','deviceName':'测试名','endTime' ...

  8. 【历史】- Unix时代的开创者Ken Thompson

    自图灵奖诞生以来,其获得者一直都是计算机领域的科学家与学者,而在所有这些界的图灵奖中只有唯一的一届有个例外,那就是Ken Thompson与Dennis M. Ritchie,他们都是计算机软件工程师 ...

  9. 使用window.getSelection()获取div中选中文字内容及位置

    div添加一个弹出事件: $(document).ready(function () { $("#marked-area").mouseup(function (e) { $sco ...

  10. java对象-String的用法

    以某字符串结尾:“”.endwith("") 字符串比较:equals(anotherstr) 命名遵循英文语法