datatable 局部刷新之单元

需求:

  1.对某一列进行动态更新。

      2.不能对表格状态更改,如选中状态、当前页数、筛选等。

 

这样我们使用 draw 、ajax.reload 等都不能满足第二个需求。幸好发现一个api  cell().data() 可以实现上面的需求。对此进行了封装来满足需求。

 

解决:

$.fn.dataTable.Api.register( 'partUpdate', function (col) {
    var api = this;
    var Sdata = api.data().data()
    $.ajax({
        url: api.ajax.url(),
        data: api.ajax.params(),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        type: 'post',
        success: function (resp) {
            var data = resp.data;
            var error = resp.error;
            if (error!=null || error!=undefined){
                alert(error)
                return false;
            }
            var field = table.column(col).dataSrc()
            $.each(Sdata, function(index, Sitem){
                $.each(data, function(_i, item){
                    if(item!=undefined && item.id==Sitem.id){
                        if (Sitem[field]!=item[field]){
                            table.cell( index, col ).data(item[field])
                        }
                        delete data[_i]
                        return false;
                    }
                })
            })
        }
    })
} );

我们注册api partUpdate,在内部ajax 访问数据源,将得到数据和原来数据进行对比,然后进行单元格更新。

 

测试效果图:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值