ExtJs删除数据代码如下:
// 删除
delete_users : function() {
var selectedRows = this.getSelectionModel().getSelections();// 返回值为
// Record 数组
if ((!selectedRows) || (selectedRows.length <= 0)) {
Ext.MessageBox.alert('提示', '请选择要删除的数据...');
return;
}
// 将选中行数据依次加入数组,以备作为参数传送
var recToDelete = [];
for (var i = 0; i < selectedRows.length; i++) {
// debugger;
// 1为系统管理员,不能删除
id_v = selectedRows[i].get('id');
// alert(id_v);
if (id_v != 1)
recToDelete.push(selectedRows[i].data);
}
Ext.MessageBox.confirm('系统提示', '删除数据不可恢复!<br />您确定要删除所选数据吗?', function(
btn) {
if (btn == 'yes') {
this.body.mask('正在删除数据...', 'x-mask-loading');
Ext.Ajax.request({
scope : this,
url : 'app/servant/delete_user.do',
params : {
recToDelete : Ext.encode(recToDelete)
// 将选中行的数据编码为JSON形式
},
success : function(response, options) {
if (response.responseText != '') {
var rst = Ext.util.JSON
.decode(response.responseText);
if ((rst) && (rst.success)) {
for (var i = 0; i < selectedRows.length; i++) {
// 1为系统管理员,不能删除
id_v = selectedRows[i].get('id');
if (id_v != 1)
this.store
.remove(selectedRows[i]);
}
this.body.unmask();
} else {
this.body.unmask();
Ext.Msg.alert('系统提示', "删除失败!请稍候重试...")
}
}
},
failure : function(response, options) {
this.body.unmask();
Ext.Msg.alert('系统提示', "删除失败!请稍候重试...")
}
});
}
}, this);
},
?
发现用了一个Ext.MessageBox.confirm()...
导致删除代码过长,格式化后的代码缩进看着也不太舒服,所以就改进为如下形式:
// 删除数据
DeleteData : function() {
records = this.getSelectionModel().getSelections();
if (records.length < 1) {
Ext.MessageBox.alert("提示", "请先选择要删除的行!");
return;
}
Ext.MessageBox.confirm('提示', '删除数据不可恢复!<br />您确定要删除所选数据吗?',
this.do_delete, this);
},
do_delete : function(btn) {
//debugger;
if (btn == 'yes') {
records = this.getSelectionModel().getSelections();
var strSplit = "";
var ids_v = "";
for (var i = 0; i < records.length; i++) {
strSplit = (ids_v.toString() == "") ? "" : ",";
ids_v += (strSplit + records[i].get('id'));
}
Ext.Ajax.request({
scope : this, // 限制范围到grid,this指向grid
url : path_prefix + 'delete_data',
params : {
ids : ids_v
},
method : 'GET',
success : function(response, option) {
var rsp = Ext.decode(response.responseText)
if ((rsp) && (rsp.success)) {
for (var i = 0; i < records.length; i++) {
this.store.remove(records[i]);
}
}
},
failure : function() {
Ext.MessageBox.alert('消息', '删除数据失败!');
}
});
}
}
?
?
?
?
?