gpt4 book ai didi

jquery - Extjs 与 Devexpress ChartJS

转载 作者:行者123 更新时间:2023-12-01 01:24:31 25 4
gpt4 key购买 nike

我想将 Devexpress 中的 dxChart 嵌入到 extjs 面板中...

这是我的基本尝试:

           var chart = $('#chartContainer').dxChart({
size:{height:200,height:200},
commonSeriesSettings: {
label: {
visible: true
}
},
series: [{
data: [
{ arg: 0, val: 1 },
{ arg: 2, val: 4 },
{ arg: 4, val: 2 }]
}, {
data: [
{ arg: 1, val: 1 },
{ arg: 2.5, val: 9 },
{ arg: 3.7, val: 5.6 }]
}]
});

var panelChart = new Ext.Panel({
items: [{
contentEl: 'chartContainer',
border: false,
layout: 'fit'
}]
});

<body>
<div id="chartContainer" style="width: 100%; height: 100%"></div>
</body>

如果我从正文中删除 div,图表不会出现在面板中:(

但是这样它不会随窗口大小改变图表大小。我不想在正文中声明 div。

有什么想法吗?我会像 Highcharts for Extjs 一样使用它。这可能吗?

提前致谢:)

最佳答案

使用面板的 html 属性在面板主体中呈现您的 div。在面板的 afterrender 事件中创建图表,以便 div 可用。最后,当面板大小调整时,使用 resize 事件调整 div 的大小。

参见this other answer 。图表库不同,但原理完全相同。

编辑

我无法调整图表的高度。由于我对lib一无所知,所以我只是引用了这个support question ...但我认为这是您正在使用的图表类型的正常行为。

无论如何,这是我的代码(也在 fiddle 中):

Ext.define('DxChartPanel', {
extend: 'Ext.Panel'

,resizable: true

,html: '<div class="chartContainer" style="width: 100%; height: 100%"></div>'

,initComponent: function() {
this.callParent(arguments);
this.on({
scope: this
,resize: function(panel) {
var ct = panel.body.down('.chartContainer'),
chart = $(ct.dom).dxChart('instance');

ct.setSize(panel.body.getSize());

chart._render({ animate: false })
// Animated resize
//chart._render();
}
,afterrender: function(panel) {
var el = this.body,
target = el.down('.chartContainer');
target.setSize(el.getSize());
this.createChart($(target.dom));
}
});
}

,createChart: function(target) {
var c = target.dxChart({
size:{height:200,height:300},
commonSeriesSettings: {
label: {
visible: true
}
},
series: [{
data: [
{ arg: 0, val: 1 },
{ arg: 2, val: 4 },
{ arg: 4, val: 2 }]
}, {
data: [
{ arg: 1, val: 1 },
{ arg: 2.5, val: 9 },
{ arg: 3.7, val: 5.6 }]
}]
});
}
});

Ext.create('DxChartPanel', {
renderTo: Ext.getBody()
,title: "Resizable Panel"
,height: 300
,width: 300
});

Ext.widget('window', {
autoShow: true
,title: "dxChart Window"
,width: 350
,height: 350
,layout: 'fit'
,items: [Ext.create('DxChartPanel', {
border: false
})]
});

关于jquery - Extjs 与 Devexpress ChartJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17945445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com