能不能在Ajax请求前为当前正在保存的行设置mask遮罩效果,并在ajax请求后取消遮罩
时间: 2024-04-11 20:27:16 浏览: 165
封装ajax请求
当进行 Ajax 请求时,您可以在请求前为当前正在保存的行设置遮罩效果,然后在请求完成后取消遮罩。您可以使用 `mask` 和 `unmask` 方法来实现这个效果。
以下是一个示例代码:
```javascript
edit: function (editor, context) {
// 获取编辑后的数据
var updatedData = context.record.data;
// 判断当前行是否有变化
if (!Ext.Object.equals(updatedData, context.record.originalData)) {
// 设置当前行的遮罩效果
context.row.mask('Saving...');
// 执行保存操作,例如发送 Ajax 请求保存数据
// 示例:使用 Ext.Ajax 发送 POST 请求保存数据
Ext.Ajax.request({
url: 'your-save-url',
method: 'POST',
jsonData: updatedData,
success: function (response) {
// 保存成功的处理逻辑
// 取消当前行的遮罩效果
context.row.unmask();
},
failure: function (response) {
// 保存失败的处理逻辑
// 取消当前行的遮罩效果
context.row.unmask();
}
});
}
}
```
在 `edit` 事件中,我们首先使用 `mask` 方法为当前行设置遮罩效果,显示一个加载中的提示。然后在 Ajax 请求的回调函数中,根据请求结果执行相应的处理逻辑,并使用 `unmask` 方法取消当前行的遮罩效果。
请注意,示例中使用了 `context.row` 来获取当前行的 DOM 元素,并调用 `mask` 和 `unmask` 方法。如果您的环境中没有 `context.row`,您可以根据实际情况修改代码来获取和操作当前行的 DOM 元素。
阅读全文