jquery easyui datagrid deleteRow(删除行)的BUG!

本文探讨了使用jQuery EasyUI datagrid组件时遇到的问题,即在使用deleteRow方法删除行后,仅更新了datagrid-row-index,而未更新datagrid-row-r1-x-x,导致下次获取行时出现错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jquery easyui是根据datagrid-row-index和datagrid-row-r1-x-x来定位行的。但在deleteRow方法中,删掉当前行后,只把当前行后面的行的datagrid-row-index更新了。也就是往前提1,弥补被删除行的空缺,但对datagrid-row-r1-x-x却没做任何改动。这样就会造成下次执行 opts.finder.getTr的时候,获得的row错误,不是自己点击的row。造成上面所提的错误。

deleteRow: function(target, index) {
    var opts = $.data(target, "datagrid").options;
    var data = $.data(target, "datagrid").data;
    opts.finder.getTr(target, index).remove();
    var gd = $.data(target, "datagrid");
    for (var i = index + 1; i < data.rows.length; i++) {
        opts.finder.getTr(target, i, "body", 2).attr("datagrid-row-index", i - 1)
        .attr("id",gd.rowIdPrefix+"-2-"+(i-1));
        var tr1 = opts.finder.getTr(target, i, "body", 1).attr("datagrid-row-index", i - 1)
        .attr("id",gd.rowIdPrefix+"-1-"+(i-1));
        if (opts.rownumbers) {
            tr1.find("div.datagrid-cell-rownumber").html(i);
        }
    }
    data.total -= 1;
    data.rows.splice(index, 1);
},


其中.attr("id",gd.rowIdPrefix+"-2-"+(i-1)); .attr("id",gd.rowIdPrefix+"-1-"+(i-1));这个两行同时去设置他对应的datagrid-row-rx-x-x


转自:http://my.oschina.net/fants/blog/77189


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值