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

被折叠的 条评论
为什么被折叠?



