在 ExtJS 中将数据附加到 GridPanel
Posted
技术标签:
【中文标题】在 ExtJS 中将数据附加到 GridPanel【英文标题】:Appending data to GridPanel in ExtJS 【发布时间】:2009-11-26 22:31:02 【问题描述】:我遇到了一个看似简单的问题:将数据附加到我的 ExtJS Gridpanel。我有一个设置了一些初始数据的网格面板。
var myData = [['data1','data2']];
var myReader = new Ext.data.ArrayReader(, [
name: 'Col1',
name: 'Col2',
);
var datastore = new Ext.data.Store(
data: myData,
reader: myReader
);
grid = new Ext.grid.GridPanel(
store: datastore,
...
etc
这一切都很好。现在我想定期将新数据附加到这个网格面板(有一个函数正在生成数据数组)。 但是我不能让它工作。尝试了datastore.add,但无济于事。
有什么想法吗?
【问题讨论】:
【参考方案1】:你向 datastore.add 传递了什么?
试试这个:
datastore.add(new datastore.recordType(
Col1: 'data3',
Col2: 'data4'
));
【讨论】:
我的设置与 Ash 相同,但不知何故 datastore.recordType 未定义。这是为什么呢?【参考方案2】:你应该改成这样:
datastore.add(new datastore.recordType(['data3', 'data4']));
【讨论】:
什么是recordType,它是如何定义的?【参考方案3】:您作为参数传递给 add 方法的数据一定有问题。 Firebug 中是否出现任何错误?如果有,是什么?
add 方法将 Ext.data.Record 对象数组作为其参数。因此,如果您有要添加到网格的数据数组,则需要将每个数组转换为记录格式,然后才能将其传递给存储。例如:
var new_data = [['data3','data4'], ['data5','data6']];
for (var i = 0, len = new_data.length; i < len; i++)
datastore.add(new datastore.recordType(
Col1: new_data[0],
Col2: new_data[1]
)
);
【讨论】:
什么是recordType,它是如何定义的?以上是关于在 ExtJS 中将数据附加到 GridPanel的主要内容,如果未能解决你的问题,请参考以下文章
前台extjs,后台java,导出 gridpanel的数据到execl中,如何做,求前台和后台action代码 ,