javascript - ExtJs 中网格中的动态列
问题描述
我有一些商店,这是形成的数据。在面板上,它看起来如何“fieldName”和文本字段(依赖于调用的表单)。例如,在一个表单上显示“名称文件”和字段,在另一个表单上显示:销售日期和日期字段。数据是动态形成的
这里是商店:
tableTempStore = new Ext.data.JsonStore({
url: objectUrlAddress,
baseParams: {
'objectID': objectID
},
root: 'Fields',
fields: [{
name: 'Type',
type: 'int'
}, {
name: 'Value'
}, {
name: 'IsRequired',
type: 'bool'
}, {
name: 'Identifier'
}, {
name: 'Data'
}],
listeners: {
load: function(obj, records) {
Ext.each(records, function(rec) {
var item = null;
switch (rec.get('Type')) {
case 0:
item = new Ext.form.NumberField();
item.id = rec.get('Identifier');
item.fieldLabel = rec.get('Hint');
var isRequired = rec.get('IsRequired');
item.anchor = '100%';
item.allowBlank = !isRequired;
item.disabled = editDisabled;
item.value = rec.get('Data');
break;
case 1:
item = new Ext.form.NumberField();
item.id = rec.get('Identifier');
item.fieldLabel = rec.get('Hint');
var isRequired = rec.get('IsRequired');
item.anchor = '100%';
item.allowBlank = !isRequired;
item.allowDecimals = true;
item.disabled = editDisabled;
item.value = rec.get('Data');
break;
}
if (item != null) {
grid.add(item);
tableValue = Ext.getCmp('propGrid').doLayout();
source[item.fieldLabel] = tableValue;
//grid.doLayout();
}
});
grid.setSource(source);
}
}
});
此代码已在表单中工作,但我需要使用 Grid(或 Editor Grid)。我知道,如何显示字段名称(“文档名称”等),但我不明白,如何显示文本字段等。对于我使用 doLayout 的表单。我怎样才能做到这一点?
这是网格:
var templateGrids = new Ext.grid.EditorGridPanel({
id: 'tableId',
height:300,
width: '100%',
clicksToEdit:1,
frame: true,
store: tableTempStore,
columns: [
{header: 'Value' dataIndex: typeValue},
{header: 'Name' dataIndex: ''}]
})
请帮我!提前感谢您的回答!
解决方案
推荐阅读
- typescript - 如何用 jest 模拟打字稿界面?
- javascript - 如何将 Popover/Modal 及其背景限制在容器 div 内(以允许滚动)?
- c - 引擎盖下的阻塞和非阻塞文件描述符
- java - 在同一循环中将项目添加到多个数组中
- sql - MS ACCESS:表格和子表格完全链接?还是表格和未绑定的连续子表格?
- vespa - 有没有办法用 Vespa 执行加权 elementSimilarity?
- haskell - 在haskell函数的归纳步骤中检查字符串中的空格
- apache-flink - Flink 数据流到表
- webstorm - 如何为 WebStorm 中的多个项目在同一文件夹中定义环境变量?
- scala - Scala - 在自定义对象列表中查找最大值和值的总和