Easyui datagrid formatter 删除行失败办理

[复制链接]
发表于 2025-12-18 18:40:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Easyui datagrid formatter 删除行失败办理

题目征象

利用formatter 为每行新增一个删除利用,,删除第一个行的时间没题目,假如存在多行的时间,当删除行时,提示错误


题目缘故原由

   由于是利用 formatter 相称于每行在渲染的时间index已经固定了,因此我在删除的时间就会出现index错误
  办理方案

   1、利用checkbox选择框举行删除(非行编辑);
2、在每次删除之后重新的渲染formatter 使得index更新
  由于需求要求按行删除,因此选择方案2

错误代码

  1. function formatOpt(value, row, index){
  2.     return '<a href="javascript:void(0)" οnclick="deleteRow('+index+')"><font color="blue" style="text-decoration:underline">删除</font></a> '
  3. }
  4. /*删除行*/
  5. function deleteRow(index){
  6.     $('#addTable').datagrid.('deleteRow',index)
  7. }
复制代码
修改子女码

  1. function formatOpt(value, row, index){
  2.     return '<a href="javascript:void(0)" οnclick="deleteRow('+index+')"><font color="blue" style="text-decoration:underline">删除</font></a> '
  3. }
  4. /*删除行*/
  5. function deleteRow(index){
  6.     console.log('index',index)
  7.     let dg = $('#addTable');
  8.     // 从数据源中删除该行数据
  9.     let dataSource = dg.datagrid('getData');
  10.     dataSource.rows.splice(index, 1);
  11.     dg.datagrid('loadData', dataSource);
  12.     // 重新设置formatter相关逻辑,更新索引
  13.     dg.datagrid('getColumnOption', 'id').formatter = function(value, row, index){
  14.         return '<a href="javascript:void(0)" οnclick="deleteRow('+index+')"><font color="blue" style="text-decoration:underline">删除</font></a> ';
  15.     };
  16. }
复制代码
假如每次删除之后和服务器交互革新datagrid也可以办理此题目;
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表