日期:2014-05-17  浏览次数:20762 次

extjs grid.Panel 局部刷新

要做一个类似于实时显示股票价格涨跌的功能,做到Change 和%Change 实时更新,怎么做?
刚接触Ext没几天,希望大家多指教。
------解决方案--------------------
做一个定时器,settimeout。个人建议不要用extjs的task。
在定时器里定期去ajax请求,然后吧请求到的数据newrecords,然后已经存在grid的store的数据oldrecords。然后你设计的时候给每个record设计一个唯一的ID(这个有很多替代方法,目的是为了找到新旧属于同一个记录的值)

updateCurrentData = function (oldrecords, newrecords) {
    for (var i = 0; i < oldrecords.length; i++) {
        for (var j = 0; j < newrecords.length; j++) {
            if (oldrecords[i].get('id') == newrecords[j][0]) {
                oldrecords[i].set('change', newrecords[j][3]);
                oldrecords[i].set('%change', newrecords[j][4])
                oldrecords[i].commit();
                break;
            }
        }
    }
}