- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想用一个 Ajax 请求保存一个 ExtJS (3.3.1) 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。
有人可以帮忙吗?谢谢!
最佳答案
经过一夜的 sleep 仍然没有答案,我做了进一步的尝试,我可以回答我自己的问题。无论如何,我都会让这个问题悬而未决,以防有人知道更好的方法。
为了解决我的问题,我将属性“storeId: 'gridStore'”添加到 ArrayStore,这样我可以稍后使用 Ext.StoreMgr.lookup() 找到商店,然后,为了节省时间,我继续重新 -通过以下方式逐条记录构建数组:
var gridData = new Array();
Ext.storeMgr.lookup('gridStore').each(function (record) {
gridData.push(record.data);
});
关键部分是我没有得到整个记录,而只得到它的数据字段。
在我得到一个包含数据的数组之后,简单的部分是将它添加到 Ajax.request 的参数中:
params: {
...
gridData: Ext.encode(gridData)
},
这终于奏效了。所有数据都编码在一个字段中。当然在服务器上它必须被解码。
关于javascript - 使用单个 Ajax 请求保存整个 EditorGrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5844210/
我有一个编辑器网格,如果特定单元格处于焦点(正在编辑),则会弹出一个包含树面板的窗口,允许用户从树面板中选择一个节点作为单元格的新值。这样,用户实际上并没有编辑相关单元格,而是使用窗口选择新值。但是,
我想用一个 Ajax 请求保存一个 ExtJS (3.3.1) editorgrid。 我创建了一个基于 ArrayStore 的 editorgrid。 var store = new Ext.da
在我的 extjs FormPanel 中,我有几个编辑器网格。我不知道这些网格的ID是什么,所以我无法使用Ext.getCmp。 “获取此 FormPanel 中的所有 editorgrid 类型”
我有一个 EditorGrid。当我编辑网格时,我使用 grid.getStore().commitChanges(),以便将所有更改保存到网格的存储中。 然后我打印出网格存储的每一行。它返回以前的值
在 ExtJS 4 中,我有一个具有分组功能的 EditorGrid。我想让一次编辑多行成为可能,即一次为一个字段写入一个值并将其传播到组中的所有行。 示例:假设我们有一家商店,其记录包含以下字段:i
我使用 GXT 2.2.3 创建了一个 EditorGrid。情况是,如果我按 Tab 键,它不会自动移动到网格中的下一个编辑单元格。请建议如何解决此问题。 最佳答案 我已经给你分享了sample c
我使用 GXT 2.2.3 创建了 EditorGrid。现在我尝试根据另一个单元格(即 SimpleComboBox)中的值禁用和启用一个单元格。我尝试了以下代码 Listener> gridAft
我使用 GXT 2.2.3 创建了一个 EditorGrid。在该网格中,一列以 TextField 作为编辑器。我的代码如下: ColumnConfig checkinTimecolumn=new
我使用 GXT 2.2.3 创建了一个 EditorGrid。现在的问题是列标题下的行没有正确对齐,它们稍微向左移动。 请建议如何解决这个问题。 最佳答案 我通过如下设置每列的填充和宽度解决了这个问题
我使用的是 ExtJs 3.3.1。 在 EditorGrid 中,我的“可编辑”列有一个 ComboBox 作为其编辑器。如何让组合框始终显示在每一行?这意味着,用户不必单击某个单元格就知道那里有一
我是一名优秀的程序员,十分优秀!