【问题标题】:ExtJs 3.4 : Get all records from a grid and pass them into a servletExtJs 3.4:从网格中获取所有记录并将它们传递到 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。

请帮帮我

干杯

【问题讨论】:

  • 您在函数的最后一行缺少结束 },这是一个错字吗?
  • 不不。我发这个问题的时候搞错了

标签: servlets extjs grid store


【解决方案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,它在这种情况下非常有效,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-24
  • 2014-01-21
  • 2014-10-11
  • 2011-09-07
  • 2013-09-10
相关资源
最近更新 更多