【问题标题】:loading extjs bar chart sample into a div tag将 extjs 条形图示例加载到 div 标签中
【发布时间】:2014-01-08 20:00:13
【问题描述】:

这里只是一个新手,试图理解和使用 extjs 4.2.1。我真的很喜欢图表和网格,并希望将它们合并到我当前的应用程序中。我让示例网格在我的应用程序中工作,但结果证明图表有点困难。我在

处使用了示例代码

sample code

它在另一个窗口中呈现图表,并想知道是否有人可以帮助我将它放入我的一个面板上的 div 标签中。

这是我为图表准备的容器:

<div data-dojo-type="dijit.layout.ContentPane" data-dojo-props="splitter:false">
         <div id="container"></div>
</div>

和图表脚本:charts.js

Ext.require('Ext.chart.*');

Ext.require(['Ext.Window', 'Ext.fx.target.Sprite', 'Ext.layout.container.Fit']);

Ext.onReady(function () { var textArea;

var store = new Ext.data.JsonStore({
    fields: ['name', 'visits', 'views'],
    data: [
        { name: 'Jul 07', visits: 245000, views: 3000000 },
        { name: 'Aug 07', visits: 240000, views: 3500000 },
        { name: 'Sep 07', visits: 355000, views: 4000000 },
        { name: 'Oct 07', visits: 375000, views: 4200000 },
        { name: 'Nov 07', visits: 490000, views: 4500000 },
        { name: 'Dec 07', visits: 495000, views: 5800000 },
        { name: 'Jan 08', visits: 520000, views: 6000000 },
        { name: 'Feb 08', visits: 620000, views: 7500000 }
    ]
});

Ext.define('Ext.chart.theme.CustomBlue', { 扩展:'Ext.chart.theme.Base',

    constructor: function (config) {
        var titleLabel = {
            font: 'bold 18px Arial'
        }, axisLabel = {
            fill: 'rgb(8,69,148)',
            font: '12px Arial',
            spacing: 2,
            padding: 5
        };

        this.callParent([Ext.apply({
            axis: {
                stroke: '#084594'
            },
            axisLabelLeft: axisLabel,
            axisLabelBottom: axisLabel,
            axisTitleLeft: titleLabel,
            axisTitleBottom: titleLabel
        }, config)]);
    }
});

var chart = Ext.create('Ext.chart.Chart', {
    animate: true,
    shadow: true,
    store: store,
    axes: [{
        type: 'Numeric',
        position: 'bottom',
        fields: ['data1'],
        label: {
            renderer: Ext.util.Format.numberRenderer('0,0')
        },
        title: 'Number of Hits',
        grid: true,
        minimum: 0
    }, {
        type: 'Category',
        position: 'left',
        fields: ['name'],
        title: 'Month of the Year'
    }],
    theme: 'CustomBlue',
    background: {
        gradient: {
            id: 'backgroundGradient',
            angle: 45,
            stops: {
                0: {
                    color: '#ffffff'
                },
                100: {
                    color: '#eaf1f8'
                }
            }
        }
    },
    series: [{
        type: 'bar',
        axis: 'bottom',
        highlight: true,
        tips: {
            trackMouse: true,
            width: 140,
            height: 28,
            renderer: function (storeItem, item) {
                this.setTitle(storeItem.get('name') + ': ' + storeItem.get('data1') + ' views');
            }
        },
        label: {
            display: 'insideEnd',
            field: 'data1',
            renderer: Ext.util.Format.numberRenderer('0'),
            orientation: 'horizontal',
            color: '#333',
            'text-anchor': 'middle'
        },
        xField: 'name',
        yField: ['data1']
    }]
      renderTo: "container"
});

});

【问题讨论】:

    标签: javascript html charts extjs4.2


    【解决方案1】:

    你没有解释问题是什么,但是看代码就很清楚了。

    问题是您需要为图表指定宽度/高度,因为它需要适当调整大小。在文档的原始示例中,尺寸由窗口上使用的 fit 布局明确提供。

    【讨论】:

    • 非常感谢。是的,我没有澄清,我没有看到图表。一旦我添加了高度:350,宽度:800,我可以看到图表,而不是条形和数据;所以在接受你的回答之前我会做一些工作。非常感谢您的回复。
    • 图表定义 data1 中的字段与商店中的不匹配。
    • 是的,让它工作,谢谢。顺便说一句,您可能知道一个链接,该链接说明了从远程源获取数据并将其传递给这些类型的小部件,extjs 中的图表/网格。我现在就让你一个人呆着,再次感谢。
    • 是的,有很多例子。 grep 在商店中调用 .load() 的示例目录。
    猜你喜欢
    • 2014-07-04
    • 2011-01-09
    • 2021-03-27
    • 2017-12-02
    • 2018-08-14
    • 2020-11-05
    • 1970-01-01
    • 2021-02-20
    • 1970-01-01
    相关资源
    最近更新 更多