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('消息', '删除数据失败!'); } }); } }
?
?
?
?
?