EXTJS4 GRID动态生成列的问题 你没将store中的json数据绑定到grid中去吧! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Ext.getCmp("configGrid").reconfigure(store, column);这步应该就是绑定进去了吧?不然是怎样的写法?刚学ext,很多东西还不知道啊 请大侠指教。我感觉是column = new Ext.grid.column.Column(json.columModle);这段有问题。因为数据是有的,就是不显示,应该跟列头没显示有关系。 参考http://code.google.com/p/exjts-dynamic-header/source/browse/trunk/dynamic_header.html?r=2 初步的问题解决了,column = new Ext.grid.column.Column(json.columModle);上面这行不需要,应该不是这么写的,我是仿造以前的版本写的。Ext.getCmp("configGrid").reconfigure(store, column);把column改为json.columModle就可以了,页面有数据了,哈哈。EXT4.0好像还没人搞过啊。 Ajax请求中的url怎么动态加载? {total:10,root:[{"FIELDTEXT":"CoBusiness","DATATABLENAME":"ZMAPFNAH001","FIELDDESCRIPTION":"CO业务类型","FIELDTEXTID":"13","DATATABLEID":1},{"FIELDTEXT":"Priority","DATATABLENAME":"ZMAPFNAH001","FIELDDESCRIPTION":"WBS优先级","FIELDTEXTID":"14","DATATABLEID":1},{"FIELDTEXT":"Element","DATATABLENAME":"ZMAPFNAH001","FIELDDESCRIPTION":"WBS元素","FIELDTEXTID":"15","DATATABLEID":1}]}我的返回的是这样的数据,在js中应该怎么去显示呢?var json = Ext.JSON.decode(response.responseText);//?????这边的json.columModle这个columModle是自己定义的吗?如果没有定义这边应该怎么写呢?column = new Ext.grid.column.Column(json.columModle);//??????下面的fields:json.fieldsNames这个也是json中要自己定义的吗?var store = Ext.create('Ext.data.Store', {fields : json.fieldsNames,data : json.data}); Ext.require(['*']);Ext.onReady(function() { var data = [{}]; var data2 = [{ OFF_PERIOD: '2013-09', QUOTANO: 'YS1100', QUOTANAME: '    主营业务收入', }, { OFF_PERIOD: '2013-09', QUOTANO: 'YS1200', QUOTANAME: ' 通信服务收入' }]; var varItems = [{ text: '指标ID', //width: 200, sortable: false, hidden: false, dataIndex: 'QUOTANO' }, { text: '指标名称', //width: 200, sortable: false, hidden: false, dataIndex: 'QUOTANAME' }, { text: '数据ID', //width: 200, sortable: false, hidden: false, dataIndex: 'QUOTAVALUENO' }, { text: '数据名称', //width: 200, sortable: false, hidden: false, dataIndex: 'QUOTAVALUENAME' }, { text: '本部', //width: 200, sortable: false, hidden: false, dataIndex: 'BENBU', field: { xtype: 'numberfield' } }, { text: '济南', //width: 200, sortable: false, hidden: false, dataIndex: 'JINAN', field: { xtype: 'numberfield' } }]; var varItems2 = [{ text: '指标ID', //width: 200, sortable: false, hidden: false, dataIndex: 'QUOTANO' }, { text: '指标名称', //width: 200, sortable: false, hidden: false, dataIndex: 'QUOTANAME' }]; var varfields = [{ name: 'OFF_PERIOD', mapping: 'OFF_PERIOD', type: 'string' }, { name: 'QUOTANO', mapping: 'QUOTANO', type: 'string' }, { name: 'QUOTANAME', mapping: 'QUOTANAME', type: 'string' }, { name: 'QUOTAVALUENO', mapping: 'QUOTAVALUENO', type: 'string' }, { name: 'QUOTAVALUENAME', mapping: 'QUOTAVALUENAME', type: 'string' }, ]; var varfields2 = [{ name: 'OFF_PERIOD', mapping: 'OFF_PERIOD', type: 'string' }, { name: 'QUOTANO', mapping: 'QUOTANO', type: 'string' }, { name: 'QUOTANAME', mapping: 'QUOTANAME', type: 'string' }]; var vardate = Ext.create('Ext.form.DateField', { fieldLabel: '账期', labelWidth: 50, name: 'Off_period', maxValue: new Date(), value: new Date(), format: 'Y-m' }); var northPanel = Ext.create('Ext.form.Panel', { region: 'north', layout: { columns: 3, type: 'table' }, height: 55, title: '业务管理', items: [vardate, { xtype: 'button', anchor: '100%', width: 75, text: '查询', handler: function() { var Store = Ext.create('Ext.data.Store', { fields: varfields2, data: data2 }); centerPanel.reconfigure(Store, varItems2); //定义grid的store和column } }, { xtype: 'button', anchor: '100%', width: 75, text: '查询2', handler: function() { var Store = Ext.create('Ext.data.Store', { fields: varfields, data: data }); centerPanel.reconfigure(Store, varItems); //定义grid的store和column } } ] }); var centerPanel = Ext.create('Ext.grid.Panel', { region: 'center', title: '业务管理', height: 55, columns: [] }); Ext.create('Ext.container.Viewport', { layout: 'border', renderTo: Ext.getBody(), items: [northPanel, centerPanel] });}); 为何Grid不能显示Json数据? 鼠标移动到某一处时,此处背景变红色,在线等 请大大们帮帮忙,day day up JS出错问题 javascript中共享页面的问题?? 求一个滑块跟随菜单的源码(急) 如何在框架中防止用户非正常关闭IE 真心求师傅 很喜欢技术 想找人带带 如何检查checkboxlist至少被选中一个 怎样取时间中,秒数的个位? 求解 正则表达式 highchart如何动态设置renderTo的值
这步应该就是绑定进去了吧?不然是怎样的写法?
刚学ext,很多东西还不知道啊
我感觉是
column = new Ext.grid.column.Column(json.columModle);
这段有问题。因为数据是有的,就是不显示,应该跟列头没显示有关系。
http://code.google.com/p/exjts-dynamic-header/source/browse/trunk/dynamic_header.html?r=2
column = new Ext.grid.column.Column(json.columModle);
上面这行不需要,应该不是这么写的,我是仿造以前的版本写的。
Ext.getCmp("configGrid").reconfigure(store, column);
把column改为json.columModle就可以了,页面有数据了,哈哈。EXT4.0好像还没人搞过啊。
{"FIELDTEXT":"CoBusiness","DATATABLENAME":"ZMAPFNAH001","FIELDDESCRIPTION":"CO业务类型","FIELDTEXTID":"13","DATATABLEID":1},
{"FIELDTEXT":"Priority","DATATABLENAME":"ZMAPFNAH001","FIELDDESCRIPTION":"WBS优先级","FIELDTEXTID":"14","DATATABLEID":1},
{"FIELDTEXT":"Element","DATATABLENAME":"ZMAPFNAH001","FIELDDESCRIPTION":"WBS元素","FIELDTEXTID":"15","DATATABLEID":1}]}我的返回的是这样的数据,在js中应该怎么去显示呢?
var json = Ext.JSON.decode(response.responseText);
//?????这边的json.columModle这个columModle是自己定义的吗?如果没有定义这边应该怎么写呢?
column = new Ext.grid.column.Column(json.columModle);
//??????下面的fields:json.fieldsNames这个也是json中要自己定义的吗?
var store = Ext.create('Ext.data.Store', {
fields : json.fieldsNames,
data : json.data
});
Ext.onReady(function() { var data = [{}];
var data2 = [{
OFF_PERIOD: '2013-09',
QUOTANO: 'YS1100',
QUOTANAME: '    主营业务收入',
},
{
OFF_PERIOD: '2013-09',
QUOTANO: 'YS1200',
QUOTANAME: ' 通信服务收入'
}];
var varItems = [{
text: '指标ID',
//width: 200,
sortable: false,
hidden: false,
dataIndex: 'QUOTANO'
},
{
text: '指标名称',
//width: 200,
sortable: false,
hidden: false,
dataIndex: 'QUOTANAME'
},
{
text: '数据ID',
//width: 200,
sortable: false,
hidden: false,
dataIndex: 'QUOTAVALUENO'
},
{
text: '数据名称',
//width: 200,
sortable: false,
hidden: false,
dataIndex: 'QUOTAVALUENAME'
},
{
text: '本部',
//width: 200,
sortable: false,
hidden: false,
dataIndex: 'BENBU',
field: {
xtype: 'numberfield'
}
},
{
text: '济南',
//width: 200,
sortable: false,
hidden: false,
dataIndex: 'JINAN',
field: {
xtype: 'numberfield'
}
}];
var varItems2 = [{
text: '指标ID',
//width: 200,
sortable: false,
hidden: false,
dataIndex: 'QUOTANO'
},
{
text: '指标名称',
//width: 200,
sortable: false,
hidden: false,
dataIndex: 'QUOTANAME'
}]; var varfields = [{
name: 'OFF_PERIOD',
mapping: 'OFF_PERIOD',
type: 'string'
},
{
name: 'QUOTANO',
mapping: 'QUOTANO',
type: 'string'
},
{
name: 'QUOTANAME',
mapping: 'QUOTANAME',
type: 'string'
},
{
name: 'QUOTAVALUENO',
mapping: 'QUOTAVALUENO',
type: 'string'
},
{
name: 'QUOTAVALUENAME',
mapping: 'QUOTAVALUENAME',
type: 'string'
},
]; var varfields2 = [{
name: 'OFF_PERIOD',
mapping: 'OFF_PERIOD',
type: 'string'
},
{
name: 'QUOTANO',
mapping: 'QUOTANO',
type: 'string'
},
{
name: 'QUOTANAME',
mapping: 'QUOTANAME',
type: 'string'
}]; var vardate = Ext.create('Ext.form.DateField', { fieldLabel: '账期',
labelWidth: 50,
name: 'Off_period',
maxValue: new Date(),
value: new Date(),
format: 'Y-m' });
var northPanel = Ext.create('Ext.form.Panel', {
region: 'north',
layout: {
columns: 3,
type: 'table'
},
height: 55,
title: '业务管理',
items: [vardate, {
xtype: 'button',
anchor: '100%',
width: 75,
text: '查询',
handler: function() {
var Store = Ext.create('Ext.data.Store', {
fields: varfields2,
data: data2
}); centerPanel.reconfigure(Store, varItems2); //定义grid的store和column }
},
{
xtype: 'button',
anchor: '100%',
width: 75,
text: '查询2',
handler: function() {
var Store = Ext.create('Ext.data.Store', {
fields: varfields,
data: data
}); centerPanel.reconfigure(Store, varItems); //定义grid的store和column }
} ]
}); var centerPanel = Ext.create('Ext.grid.Panel', {
region: 'center', title: '业务管理',
height: 55,
columns: []
}); Ext.create('Ext.container.Viewport', {
layout: 'border',
renderTo: Ext.getBody(),
items: [northPanel, centerPanel]
});});