无法使用ExtJs 3.0呈现简单Piechart
我试图使用ExtJS3.0呈现一个简单的piechart,但无法。以下是片段:无法使用ExtJs 3.0呈现简单Piechart,extjs,pie-chart,Extjs,Pie Chart,我试图使用ExtJS3.0呈现一个简单的piechart,但无法。以下是片段: <div id="ext_grid_panel"> <div id="blackout_tab"> <div id="grid_blackout_current"></div> </div> <div id="gls_tab"> <div id="gls_current">
<div id="ext_grid_panel">
<div id="blackout_tab">
<div id="grid_blackout_current"></div>
</div>
<div id="gls_tab">
<div id="gls_current"></div>
</div>
</div>
var mainGridPanelWidth = (Ext.IsIE)?'':'width: \'100%\',';
var mainGridPanel = new Ext.TabPanel({
id: 'maingridpanel',
renderTo: 'ext_grid_panel',
style: {width:'100%'},
tabWidth: 1000,
activeTab: 0,
items: [
{id: 'allTabPanel',contentEl: 'blackout_tab',title: 'All'},
{id: 'glsTabPanel',contentEl: 'gls_tab',title: 'GLS'}
]
});
if (!Ext.IsIE)
mainGridPanel.setWidth('100%');
Ext.getCmp('allTabPanel').on('activate', function() {
});
Ext.getCmp('glsTabPanel').on('activate', function() {
});
var pieChart = {
xtype : 'piechart',
store : [{'total' :'42', 'range':'20,000'},{'total' :'53', 'range':'10,000'}],
dataField : 'total',
categoryField : 'range'
};
var panelBlackoutCurrent = new Ext.Panel({
id: 'panelblackoutcurrent',
renderTo: 'grid_blackout_current',
items: [
pieChart
]
});
var panelglsCurrent = new Ext.Panel({
id: 'panelglscurrent',
renderTo: 'gls_current',
items: [
pieChart
]
});
var mainGridPanelWidth=(Ext.IsIE)?“”:“宽度:\'100%\”;
var mainGridPanel=新的Ext.TabPanel({
id:“maingridpanel”,
renderTo:'ext_grid_panel',
样式:{宽度:'100%},
宽度:1000,
活动选项卡:0,
项目:[
{id:'allTabPanel',contentEl:'blackout_tab',title:'All'},
{id:'glsTabPanel',contentEl:'gls_tab',title:'gls'}
]
});
如果(!Ext.IsIE)
mainGridPanel.setWidth('100%”);
Ext.getCmp('allTabPanel')。在('activate',function()上{
});
Ext.getCmp('glsTabPanel')。在('activate',function(){
});
变量图表={
xtype:“piechart”,
存储:[{'total':'42','range':'20000'},{'total':'53','range':'10000'},
数据字段:“总计”,
类别字段:“范围”
};
var Panel BlackoutCurrent=新的外部面板({
id:“面板断电电流”,
renderTo:“电网断电电流”,
项目:[
皮查特
]
});
var panelglsCurrent=新的外部面板({
id:“panelglscurrent”,
renderTo:“gls_当前”,
项目:[
皮查特
]
});
当我在firefox firebug中检查时,我看到创建了一个对象(.swf),但piechart内容不存在/呈现
快速指导非常受欢迎,因为它需要花费大量时间,而且没有解决方案您可以使用示例饼图作为起点: 结果如下:我的版本来了
<html>
<head>
<link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css" />
<!-- GC -->
<!-- LIBS -->
<script type="text/javascript" src="../../adapter/ext/ext-base.js"></script>
<!-- ENDLIBS -->
<script type="text/javascript" src="../../ext-all.js"></script>
<!-- Common Styles for the examples -->
<link rel="stylesheet" type="text/css" href="../shared/examples.css" />
</head>
<body>
<div id="ext_grid_panel">
</div>
<script>
Ext.onReady(function(){
var store = new Ext.data.JsonStore({
fields: ['total', 'range'],
autoLoad: true,
data: [
{
total: 42,
range:'20,000'
}
,{
total: 53,
range:'10,000'
}
]
});
var mainGridPanel = new Ext.TabPanel({
renderTo: 'ext_grid_panel',
//style: {width:'100%'},
width: '100%',
height: 400,
activeTab: 0,
plain: true,
items: [
{
id: 'panelglscurrent',
title: 'GPS',
layout: 'fit',
listeners: {
activate: function(){
}
},
items: [{
id: 'chart1',
xtype : 'piechart',
store : store,
dataField : 'total',
categoryField : 'range'
}]
},
{
id: 'panelblackoutcurrent',
title: 'All',
layout: 'fit',
listeners: {
activate: function(){
}
},
items: [
{
id: 'chart2',
xtype : 'piechart',
store : store,
dataField : 'total',
categoryField : 'range'
}
]
}
]
});
Ext.getCmp('panelglscurrent').on('activate', function() {
Ext.getCmp('panelglscurrent').doLayout(true);
});
Ext.getCmp('panelblackoutcurrent').on('activate', function() {
Ext.getCmp('panelblackoutcurrent').doLayout(true);
});
if (!Ext.IsIE)
mainGridPanel.setWidth('100%');
});
</script>
</body>
</html>
Ext.onReady(函数(){
var store=new Ext.data.JsonStore({
字段:['total','range'],
自动加载:对,
数据:[
{
总数:42,
范围:'20000'
}
,{
总数:53,
范围:'10000'
}
]
});
var mainGridPanel=新的Ext.TabPanel({
renderTo:'ext_grid_panel',
//样式:{宽度:'100%},
宽度:“100%”,
身高:400,
活动选项卡:0,
朴素:没错,
项目:[
{
id:“panelglscurrent”,
标题:“全球定位系统”,
布局:“适合”,
听众:{
激活:函数(){
}
},
项目:[{
id:'图表1',
xtype:“piechart”,
店:店,,
数据字段:“总计”,
类别字段:“范围”
}]
},
{
id:“面板断电电流”,
标题:“全部”,
布局:“适合”,
听众:{
激活:函数(){
}
},
项目:[
{
id:'图表2',
xtype:“piechart”,
店:店,,
数据字段:“总计”,
类别字段:“范围”
}
]
}
]
});
Ext.getCmp('panelglscurrent')。在('activate',function()上{
Ext.getCmp('panelglscurrent').doLayout(真);
});
Ext.getCmp('panelblackoutcurrent')。在('activate',function(){
Ext.getCmp('panelblackoutcurrent').doLayout(真);
});
如果(!Ext.IsIE)
mainGridPanel.setWidth('100%”);
});
您的样本存在一些问题:
- 首先,您必须创建一个适当的存储,将对象数组传递给饼图是不够的
- 另外,您应该将代码包装在Ext.onReady中,否则可能会出现一些奇怪的行为,例如元素未正确呈现
- 确保将
包含在包含图表的选项卡面板上,否则图表将无法正确呈现plain:true
- 尝试在变量中使用好的名称(比如mainGridPanel实际上是一个TabPanel)
- 根据经验,您的代码很快就会变得凌乱李>
另外,如果您想使用全屏制作extjs组件,最好使用视口,这样可以很好地调整所有内容的大小,并使您的操作更加轻松感谢您的链接,Igor。不过,我还是无法渲染它。当我在firebug中检查时,我发现以下内容,但没有呈现饼图:。我的应用程序部署在IIS服务器中,我想知道服务器是否不允许/支持呈现“.swf”文件。如果为真,您知道如何在IIS中启用/设置以允许“application/x-shockwave-flash”类型的文件吗?“PhP.ini”中还有其他设置需要完成吗?谢谢Igor,它可以工作!!你提供了一个简单的,基本的启动步骤,真的很有帮助。非常感谢RageZ,它很有效!!!!!你的解释很详细,很容易理解。拉格兹,我看到一种奇怪的行为。这两个选项卡在firefox中每次都能很好地呈现,但在IE6中,当我点击第二个选项卡(即id:'panelblackoutcurrent',title:'All')时,它会随机呈现piechart(有时呈现,有时不呈现)。所以我再次刷新以查看结果,它有时渲染,有时不渲染。你能告诉我解决办法吗?提前谢谢。