使用Datatable插件时遇到的奇葩问题(二)

本文探讨了在使用Datatable时遇到的无法刷新数据问题,深入解析了retrieve属性的作用,并提供了两种解决方案:一是通过fnClearTable和fnDestroy方法清空并销毁原Datatable,二是利用fnDraw方法重新绘制表格。

1.今天的问题是:我重新初始化Datatable,为什么展示的还是之前加载的数据?怎么展示我获取到的新数据?

这个问题,其实是因为使用了 retrieve : true 属性。它的作用如下图描述所示。

而有时我们又不得不使用它。我这里的情况是,如果讲它置为 false ,会报无法找到 id 等等错误。

所以抛开这个问题,如何去解决?

第一种方法:那就是通过 Datatable 的 fnClearTable();//清空数据 和 fnDestroy();//销毁Datatable 方法。

    //初始化表格
    function initTable(tColumns, tDatas){
		if ($('#datatable').hasClass('dataTable')) {
			var oTable = $("#datatable").dataTable();
			oTable.fnClearTable();  //清空数据
			oTable.fnDestroy();  //销毁datatable
        } 
        table = $("#datatable").DataTable({
            "language" : {
                "url" : _ctx + "/statics/components/datatables/i18n/zh_ZH.txt"
            },
			"ordering": false,//排序 关闭
			"autoWidth": false,//关闭自动设置宽度
			"scrollX": true,//开启水平滚动条
            "info": false, // 默认为true,当前页面显示信息。
            "responsive": false,// 默认为false,自适应,关闭之后就可以完美触发横轴滚动条,不会错版。
            "processing " : true,   //开启读取服务器数据时显示正在加载    MDX
            "searching" : true,
            "retrieve": true,
            "pageLength" : 4, 
            "lengthChange": false,// 默认为true,显示页面记录条数变更下拉框。
            "columns" : tColumns,
            "serverSide" : false,  //开启服务器模式,使用服务器端处理配置datatable MDX
            "data" : tDatas
        });
    }

这样就可以解决不加载新数据的问题。

第二种方法:就是使用 fnDraw() 方法,重新绘制表格。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值