六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 45|回复: 0

ExtJs删除数据

[复制链接]

升级  0%

58

主题

58

主题

58

主题

举人

Rank: 3Rank: 3

积分
200
 楼主| 发表于 2013-1-23 01:43:42 | 显示全部楼层 |阅读模式
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指向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[i]);}}},failure : function() {Ext.MessageBox.alert('消息', '删除数据失败!');}});}} 
 
 
 
 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表