当前位置: 代码迷 >> JavaScript >> ExtJs剔除数据
  详细解决方案

ExtJs剔除数据

热度:109   发布时间:2012-10-25 10:58:57.0
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[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('消息', '删除数据失败!');
					}
				});
	}
}

?

?

?

?

?

  相关解决方案