我想用一個Ajax請求保存ExtJS(3.3.1)editorgrid。使用單個Ajax請求保存整個EditorGrid
我已經創建了一個基於ArrayStore的editorgrid。
var store = new Ext.data.ArrayStore({
data: arrayData,
fields: [ 'id', 'qty', 'idService', 'idSubscription',
'description', 'vat', 'amount' ]
});
[...]
var grid = {
xtype: 'editorgrid',
store: store,
view: gridView,
colModel: colModel,
selModel: selModel,
stripeRows: true,
tbar: tbar,
autoHeight: true,
width: 872,
clicksToEdit: 1
};
我創建了一個保存按鈕具有以下處理:
app.inv.saveButtonHandler = function() {
var myForm = Ext.getCmp("formHeader").getForm();
if (!myForm.isValid()) {
Ext.MessageBox.alert('Form Not Submitted',
'Please complete the form and try again.');
return;
}
myForm.el.mask('Please wait', 'x-mask-loading');
Ext.Ajax.request({
params: {
idCustomer: myForm.findField("idCustomer").getValue(),
issueDate: myForm.findField("issueDate").getValue(),
documentType: myForm.findField("documentType").getValue(),
documentNumber: myForm.findField("documentNumber").getValue()
},
url: 'save-sales-document-action',
method: 'POST',
success: function (response, request) {
myForm.el.unmask();
Ext.MessageBox.alert('Success', 'Returned: ' + response.responseText);
},
failure: function (response, request) {
myForm.el.unmask();
Ext.MessageBox.alert('Failed', 'Returned: ' + response.responseText);
}
});
};
換句話說,我可以發送表單元素用一個簡單的價值,但我不知道如何發送整個數據網格。我想用一個Ajax請求發送整個數據網格。
我已經在逐個單元格保存方法之前使用過,但在這種情況下,我寧願一次保存整個網格。我不需要服務器端部分的幫助,我會用Java來完成,僅用於客戶端JavaScript。
有人可以幫忙嗎?謝謝!
我試圖將屬性「storeId:'gridStore'」添加到ArrayStore。然後嘗試Ext.encode(Ext.StoreMgr.lookup('gridStore')。data);但我得到錯誤'太多遞歸',即使我嘗試Ext.encode(Ext.StoreMgr.lookup('gridStore')。getAt(0)) – stivlo 2011-05-01 03:14:01