DataTable 带滚动刷新全选全不选

引入
../../../../media/css/jquery.dataTables.css
../../css/scroller.dataTables.css


https://code.jquery.com/jquery-3.3.1.js
../../../../media/js/jquery.dataTables.js
../../js/dataTables.scroller.js
function getDgBgshTable(){
        sjxmFwTable = $('#sjxmFwTable').DataTable({
            destroy : true,
            serverSide : true,
                        paging : true,
            dom: "frtiS",
            scrollX: true,
            scrollY: 246,
            scroller: {
                loadingIndicator: true
            },
            responsive : true,
            processing : true,
            autoWidth : false,// 自动计算列宽
            deferRender : true,// 设置延迟渲染,提高效率用
            draw : false,
            searching: false, 
            bLengthChange: false,
            order : [ 1, 'asc' ],
            ajax : {
                url : "sjxm2/getSjfw",
                type : "POST",
                data : function(d) {
                    var sentJson = GET_SENT_JSON(d);
                    sentJson.search1 = sjxmglArr[0].sjxmdm;  //sjxmdm
                    sentJson.search2 = $('#text_xmbh').val();//xmbh
                    sentJson.search3 = $('#text_bmbh').val();//bmbh

                    return sentJson;
                },
                error : function(e) {
                    ALERT_ERROR(sjxmFwTable, e);
                },
            },
            lengthMenu : PAGELENGTH,
            "language" : LANGUAGESETTING,
            columnDefs : [
                { "targets": 0 ,"name":"bmbh"   ,"title": " <a><i class='fa fa-circle selectAll_bgdg'></a></i><a><i class='fa fa-circle-o QselectAll_bgdg'></a>", "width": "2%","orderable" : false,},
                { "targets": 1 ,"name":"bmbh" ,"title": "部门编号", "visible": true,"width": "2%", orderable:false,},
                { "targets": 2 ,"name":"bmmc","title": "部门名称" ,"visible": true,"width": "16%"  ,orderable :true ,},
                { "targets": 3 ,"name":"xmbh","title": "项目编号" ,"visible": true,"width": "20%" , orderable :false ,},
                { "targets": 4 ,"name":"xmmc","title": "项目名称" ,"visible": true,"width": "20%" , orderable :false ,},
            ],
            columns: [
                {
                    "sClass": "text-center",
                    "data": "bmbh",
                    "render": function (data, type, row, meta) {
                        return '<input type="checkbox"  class="checkchild_bgdg" value="' + data + '"  name="childBox"/>';
                    },
                },
                {data: 'bmbh'},
                {data: 'bmmc'},
                {data: 'xmbh'},
                {data: 'xmmc'},
            ],
        });
        
        //鼠标移动添加背景颜色
        mouseEvent("sjxmFwTable");
    };
    
    
    var handleCheckbox = function() {
        $(".selectAll_bgdg").click(function () {

            var bgdg_data = $(sjxmFwTable).context[0].aoData; 
            for(var i = 0 ; i < bgdg_data.length ; i++) {
                //判断是否延迟渲染
                if(bgdg_data[i].anCells != null) {
                    //没有勾选的场合
                    if(!bgdg_data[i].anCells[0].firstChild.checked) {
                        bgdg_orderArr.push(bgdg_data[i]._aData);
                    }
                }
            }
            $(".checkchild_bgdg").prop("checked", true);
         });

        $(".QselectAll_bgdg").click(function () {
            
            var bgdg_data = $(sjxmFwTable).context[0].aoData; 
            for(var i = 0 ; i < bgdg_data.length ; i++) {

                //判断是否延迟渲染
                if(bgdg_data[i].anCells != null) {
                    //勾选的场合
                    if(bgdg_data[i].anCells[0].firstChild.checked) {
                        var xmbh = bgdg_data[i]._aData.xmbh;
                        for(var m = 0 ; m < bgdg_orderArr.length ; m++) {
                            if(xmbh == bgdg_orderArr[m].xmbh) {
                                bgdg_orderArr.splice(m, 1);
                            }
                        }
                    }
                }
            }
            $(".checkchild_bgdg").prop("checked", false);
         });
         
        sjxmFwTable.off("click").on( 'click', '.checkchild_bgdg',  function (e) {
            var checked = $(this).is(":checked");
            nRow = $(this).parents('tr')[0];
            var nData = sjxmFwTable.row( nRow ).data();
            if (checked) {
                bgdg_orderArr.push(nData);
            } else {
                var xmbh = nData.xmbh;
                for(var m = 0 ; m < bgdg_orderArr.length ; m++) {
                    if(xmbh == bgdg_orderArr[m].xmbh) {
                        bgdg_orderArr.splice(m, 1);
                    }
                }
            }
        });
    }
列表刷新   sjxmFwTable.ajax.reload();

带滚轴时表头会产生错位,需要刷新
setTimeout(function(){
    sjxmFwTable.ajax.reload();
 },200);

转载于:https://www.cnblogs.com/sunBinary/p/11498670.html

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script src="/js/vue-2.6.12.js"></script> </head> <body> <div id="app"> <table border="1"> <tr> <th><input type="checkbox" @click="selectAll" v-model="ischeck">全选</th> <th>姓名</th> <th>年龄</th> <th>性别</th> <th>成绩</th> <th>操作</th> </tr> <tr v-for="(item, index) in students" :key="index" v-show="!item.isfliter"> <td><input type="checkbox" :value="index" v-model="checkboxlist" @click="isAll"></td> <td>{{item.name}}</td> <td>{{item.age}}</td> <td>{{item.sex}}</td> <td>{{item.score}}</td> <td> <button @click="deleteStudent(index)">删除</button> <button @click="changemess(index)" >修改</button> </td> </tr> </table> <form v-show="hid1" > 姓名:<input type="text" v-model="stu.name" ><br> 年龄:<input type="text" v-model="stu.age"><br> 性别:<select type="radio" v-model="stu.sex"> <option value="男">男</option> <option value="女">女</option> </select><br> 成绩:<input type="text" v-model="stu.score"><br> <button @click="add()">添加</button> <button>取消</button> </form> <form v-show="hid2" > 姓名:<input type="text" ><br> 年龄:<input type="text" ><br> 性别:<input type="text" ><br> 成绩:<input type="text" ><br> <button>添加</button> <button>取消</button> </form> </div> <script> let app = new Vue({ el: "#app", data: { //表单数据 stu: { }, newindex:'', delx:[], hid1:false, hid2:false, ischeck: false, //是否是新增,修改为false isNew: false, //复框列表 checkboxlist: [], //分页数据 students: [ { name: '张三', age: 18, sex: '男', score: 90, isfliter: false }, { name: '李四', age: 19, sex: '女', score: 99, isfliter: false }, { name: '王五', age: 20, sex: '男', score: 43, isfliter: false }, { name: '赵六', age: 21, sex: '女', score: 84, isfliter: false }, { name: '孙七', age: 22, sex: '男', score: 50, isfliter: false } ], }, methods: { // 全选 selectAll() { if (this.ischeck) { this.checkboxlist = []; } else { this.checkboxlist = this.students.map((_, index) => index); } }, //若果全选,则全选按钮为true isAll(){ if(this.checkboxlist.length === this.students.length-1){ this.ischeck = true; }else{ this.ischeck = false; } }, deleteStudent(index){ this.students.splice(index,1) }, changemess(index){ this.newindex=index; this.hid1=!this.hid1; for(let i in this.students[index]){ this.stu[i]=this.students[index][i] }; }, add(index){ this.hid1=!this.hid1; for(let x in this.students[this.newindex]){ console.log(this.students[this.newindex][x]) this.students[this.newindex][x]=this.stu[x]; console.log(this.students[this.newindex][x]) } } } }); </script> </body> </html>添加后,表格又刷新了,而是对原有数据进行修改
07-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值