首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ExtJS 4.2 -图表重绘,仍可看到旧标签

ExtJS 4.2 -图表重绘,仍可看到旧标签
EN

Stack Overflow用户
提问于 2014-01-21 22:26:36
回答 1查看 3.1K关注 0票数 1

我做的折线图有点问题。

我这样做是为了让它每秒自动更新一次,它将获取"Ping Time“文本字段中的值,然后将其放到图表上的下一个”分钟“索引中。

然而,错误的是,当图表更新时,它不会正确地刷新轴。你可以在这里看到这一点:

http://jsfiddle.net/HTj5Q/71/

所关注的代码片段将是图表创建,

代码语言:javascript
复制
Ext.create('Ext.chart.Chart',{
        renderTo:Ext.getBody(),
        id:'ChartTest',
        xtype: 'chart',
        width: 400,
        height:300,
        store: testStore,
        axes:[
            {
                title:'Ping Time',
                type: 'Numeric',
                position: 'left',
                grid:true,
                fields: ['ping'],
            },
            {
                title:'Minutes',
                type: 'Numeric',
                position: 'bottom',
                grid:true,
                fields:['id'],
                minimum:0,
            }
        ],
        series: [
             {
                 type:'line',
                 xField:'id',
                 yField:'ping',
                tips: {
                trackMouse: true,
                width: 80,
                height: 40,
                renderer: function(storeItem, item) {
                    this.setTitle(storeItem.get('id'));
                    this.update(storeItem.get('ping'));
                }
            }
             }
        ],
});

以及刷新代码

代码语言:javascript
复制
var task = Ext.TaskManager.start({
 run: function () {
     min=min+1;
    // max=max+1;
    // Ext.getCmp('ChartTest').axes.items[1].maximum=max;
     Ext.getCmp('ChartTest').axes.items[1].minimum=min;
     test= Ext.getCmp('PingTime').getValue();
     temp = temp+1;
     Ext.getCmp('display').setValue('Temp = '+temp+' Test = '+test);   

     testStore.add({id:temp,ping:test});
     var rec=  testStore.getAt(0);
     Ext.getCmp('display2').setValue('rec is '+rec.get('id'));
     if(rec.get('id')<temp-8)
     {
         testStore.remove(rec);
     }
     Ext.getCmp('ChartTest').redraw();

     },
     interval: 2000
 });
EN

回答 1

Stack Overflow用户

发布于 2014-01-22 16:11:04

试着使用

代码语言:javascript
复制
Ext.getCmp('ChartTest').surface.removeAll();

在redraw()方法之前。

这并不是一个完整的解决方案,因为仍然存在一些问题。例如,如果您在"Ping time“文本字段中显著更改了一个值,则Y轴将被破坏。此外,它可能不会在所有浏览器中都能正常工作,但我猜这些附加信息可能会帮助您找到最终的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21260853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档