Это частично сработало для меня - в ExtJS 4.0.2a я не мог добавить к baseParams, поэтому вместо этого я вызвал обработчик отправки, чтобы вместо него сделать:
function prepareToSendForm(a, b) {
var myItems = Ext.getCmp('grid-links').store.getRange();
var myJson = [];
for (var i in myItems) {
myJson.push({
'title': myItems[i].get('title'),
'url': myItems[i].get('url'),
'refreshes': myItems[i].get('refreshes')
});
}
//Update the hidden field to be the JSON of the Grid
for (var i=0, len=Ext.getCmp('roomCreateForm').getForm()._fields.items.length; i<len; i++) {
var item = Ext.getCmp('roomCreateForm').getForm()._fields.items[i];
if (item.name=='roomLinks') {
Ext.getCmp('roomCreateForm').getForm()._fields.items[i].inputEl.dom.value=Ext.encode(myJson);
break;
}
}
Ext.getCmp('roomCreateForm').submit();
}
То, что сработало, - это очарование (но не очень "включай и работай"). Мне пришлось создать скрытое поле (с именем roomLinks выше) в форме, и второй цикл for выше находит это и заменяет значение результатами JSONed.