ExtJs 3.4:从网格中获取所有记录并将它们传递到 servlet
Posted
技术标签:
【中文标题】ExtJs 3.4:从网格中获取所有记录并将它们传递到 servlet【英文标题】:ExtJs 3.4 : Get all records from a grid and pass them into a servlet 【发布时间】:2014-02-04 06:46:56 【问题描述】:我有一个网格存储,我想从该网格中获取所有记录并将它们推送到一个数组中。而且我还想将这个数据数组传递给一个 servlet 以将它们保存在数据库中。这是我的尝试。
var tourData = plannedGridStore.getRange();
var gridData = new Array();
tourData.each(function (record)
gridData.push(record.data);
);
但我的萤火虫控制台说
.each(function (record) is not a function
我正在使用 ExtJs 3.4。我的代码有什么问题?
而且我还需要知道如何将我的 gridData 数组传递给 servlet。
请帮帮我
干杯
【问题讨论】:
您在函数的最后一行缺少结束
,这是一个错字吗?
不不。我发这个问题的时候搞错了
【参考方案1】:
Ext.data.Store
getRange
方法返回记录数组。对于迭代这个数组,你可以使用Ext.each()
方法:
Ext.each(tourData, function (record)
gridData.push(record.data);
);
要将数组数据发送到服务器,您可以使用Ext.Ajax.request
方法。您不能将数组作为请求参数传递,因此首先您必须使用 Ext.util.JSON.encode()
方法将其编码为 JSON。
Ext.Ajax.request(
url: 'YOUR_URL',
params:
gridData: Ext.util.JSON.encode(gridData)
);
【讨论】:
这很好用。非常感谢。你能告诉我,我应该在我的 servlet 中接收这个 gridData 数组吗?【参考方案2】:如果你使用的是 POST,你可以做一些非常简洁的事情,比如:
Ext.Ajax.request(
url: 'url',
jsonData: Ext.pluck(store.getRange(), 'data')
);
【讨论】:
很高兴了解Ext.pluck
,它在这种情况下非常有效,谢谢!以上是关于ExtJs 3.4:从网格中获取所有记录并将它们传递到 servlet的主要内容,如果未能解决你的问题,请参考以下文章