马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
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也可以办理此题目;
|