贝特虫子 发表于 2013-1-23 01:43:42

ExtJs删除数据

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.get('id');// alert(id_v);if (id_v != 1)recToDelete.push(selectedRows.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.get('id');if (id_v != 1)this.store.remove(selectedRows);}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.get('id'));}Ext.Ajax.request({scope : this, // 限制范围到grid,this指向gridurl : 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);}}},failure : function() {Ext.MessageBox.alert('消息', '删除数据失败!');}});}} 
 
 
 
 
页: [1]
查看完整版本: ExtJs删除数据