Easyui datagrid 后台删除列异常处理

本文介绍了一个关于datagrid在删除选中项后重新加载时出现的异常情况及解决方法。当用户删除一列数据后,即使未重新选择任何列,系统仍能检测到选中状态。文中提供了一种解决方案来确保在未选中任何项时无法进行删除操作。

1、问题描述
有一个datagrid列表,选中一列,点删除按钮,后台执行删除后,datagrid重新加载,没有选中任何一列数据,点删除按钮,还可以获取到有一个选中列。

function deleteIncomePayment(){
        var row = projReturnDetailDataGrid.datagrid('getSelected');
        if(row == null) {
            $.messager.show('提示', "请选择要删除的回款方式", 'info');
        }else{
            parent.$.messager.confirm('您是否要删除当前回款方式?', function(b) {
                if (b) {
                    parent.$.messager.progress({
                          title : '提示',
                          text : '数据处理中,请稍后....'
                    });
                    $.post('${pageContext.request.contextPath}/proj/income/deleteIncomePayment.do', {
                        id : row.id
                    }, function(json) {
                        parent.$.messager.progress('close');
                        if (json.success) {
                            $.messager.show('提示', json.msg, 'info');
                             //刷新列表
                             $('#projReturnDetailDataGrid').datagrid('reload');
                        }else{
                            $.messager.show('提示', json.msg, 'info');
                        }
                    }, 'JSON');

                }
            });
        }
    }

也就是说,在第一次删除数据后,当前datagrid 重新reload后,在没有选中任何一条数据的情况下,再次点删除按钮,用下面的代码获取datagrid的选中行,还是可以获取到数据。
var row = projReturnDetailDataGrid.datagrid(‘getSelected’);

2、问题处理
在删除成功后,当前datagrid 重新reload前,添加两行代码发如下:

//获取当前列表的选中行的序列
var rowIndex = $('#projReturnDetailDataGrid').datagrid('getRowIndex', row);

//根据选中行的序列,删除列          
        $('#projReturnDetailDataGrid').datagrid('deleteRow', rowIndex); 

这里写图片描述

这样修改后,第一次删除数据后,在没有选中任何一条数据表情况下,再次点删除按钮,会弹出提示“请选择要删除的回款方式”。

3、datagrid清空数据的一个方法:

$('#productDetailDataGrid').datagrid('loadData', { total: 0, rows: [] }); 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值