ExtJs 3.4: получить все записи из сетки и передать их в сервлет
У меня есть хранилище сетки, и я хочу получить все записи из этой сетки и поместить их в массив. А также я хочу передать этот массив данных сервлету, чтобы сохранить их в базе данных. Вот моя попытка.
var tourData = plannedGridStore.getRange();
var gridData = new Array();
tourData.each(function (record) {
gridData.push(record.data);
});
Но моя консоль Firebug говорит
.each(function (record) { is not a function
Я использую ExtJs 3.4. Что не так с моим кодом?
А также мне нужно знать, как передать массив gridData сервлету.
пожалуйста, помогите мне
ура
2 ответа
Ext.data.Store
getRange
метод возвращает массив записей. Для повторения этого массива вы можете использовать Ext.each()
метод:
Ext.each(tourData, function (record) {
gridData.push(record.data);
});
Для отправки данных массива на сервер вы можете использовать Ext.Ajax.request
метод. Вы не можете передать массив в качестве параметра запроса, поэтому сначала вам нужно закодировать его в JSON с помощью Ext.util.JSON.encode()
метод.
Ext.Ajax.request({
url: 'YOUR_URL',
params: {
gridData: Ext.util.JSON.encode(gridData)
}
});
Если вы используете POST, вы можете сделать что-то довольно лаконичное, например:
Ext.Ajax.request({
url: 'url',
jsonData: Ext.pluck(store.getRange(), 'data')
});