您的位置:首页 > 财经 > 金融 > 空间站免费版下载_网站建站平台是什么_站长工具seo综合查询怎么关闭_建站平台如何隐藏技术支持

空间站免费版下载_网站建站平台是什么_站长工具seo综合查询怎么关闭_建站平台如何隐藏技术支持

2024/12/23 4:33:18 来源:https://blog.csdn.net/weixin_43159039/article/details/144052643  浏览:    关键词:空间站免费版下载_网站建站平台是什么_站长工具seo综合查询怎么关闭_建站平台如何隐藏技术支持
空间站免费版下载_网站建站平台是什么_站长工具seo综合查询怎么关闭_建站平台如何隐藏技术支持

Easyui datagrid formatter 删除行失败解决

问题现象

使用formatter 为每行新增一个删除操作,,删除第一个行的时候没问题,如果存在多行的时候,当删除行时,提示错误
在这里插入图片描述
在这里插入图片描述

问题原因

因为是使用 formatter 相当于每行在渲染的时候index已经固定了,因此我在删除的时候就会出现index错误

解决方案

1、使用checkbox选择框进行删除(非行编辑);
2、在每次删除之后重新的渲染formatter 使得index更新

由于需求要求按行删除,因此选择方案2

错误代码

function formatOpt(value, row, index){return '<a href="javascript:void(0)" οnclick="deleteRow('+index+')"><font color="blue" style="text-decoration:underline">删除</font></a> '
}/*删除行*/
function deleteRow(index){$('#addTable').datagrid.('deleteRow',index)
}

修改后代码

function formatOpt(value, row, index){return '<a href="javascript:void(0)" οnclick="deleteRow('+index+')"><font color="blue" style="text-decoration:underline">删除</font></a> '
}/*删除行*/
function deleteRow(index){console.log('index',index)let dg = $('#addTable');// 从数据源中删除该行数据let dataSource = dg.datagrid('getData');dataSource.rows.splice(index, 1);dg.datagrid('loadData', dataSource);// 重新设置formatter相关逻辑,更新索引dg.datagrid('getColumnOption', 'id').formatter = function(value, row, index){return '<a href="javascript:void(0)" οnclick="deleteRow('+index+')"><font color="blue" style="text-decoration:underline">删除</font></a> ';};
}

如果每次删除之后和服务器交互刷新datagrid也可以解决此问题;

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com