layui 数据表格 sort排序,filter过滤——soulTable

1,效果图

在这里插入图片描述

2,页面代码


 <div class="fp-table" style="margin-left:0.5%;width: 86%">
        <table id="fapztable" lay-filter="faptool" style="margin-bottom: 0px;"></table>
 </div>
    

3,js代码


//引入扩展组件
 layui.config({
        base: '/static/layui-v2.5.6/ext/',// 第三方模块所在目录
        version: 'v1.5.10' // 插件版本号
    }).extend({
        soulTable: 'soulTable/soulTable',
        tableChild: 'soulTable/tableChild',
        tableMerge: 'soulTable/tableMerge',
        tableFilter: 'soulTable/tableFilter',
        excel: 'soulTable/excel',
        dltable: 'treegrid/dltable',
        tableSelect:'tableSelect/tableSelect',
        treeGrid:'treegrid/treeGrid'
    });

    layui.use(["form","table",'soulTable'],function(){
		fpgrid()
    });

//动态列标题写入
  function fpgrid(data) {
        var cols = [];
       for (var i = 0; i < fieldlist.length; i++) {
            var onechenbenkemu = fieldlist[i];
            var widthnum=110;
            var label=onechenbenkemu.name;
            label=label.length>10?label.substring(0,10):label;
            widthnum=label.length*16+20; //宽度设置
            widthnum=widthnum<110?110:widthnum;
            console.log(label+"::"+widthnum)
            
            var items = {field: onechenbenkemu.code, title: label, width: widthnum, align: 'right', halign: 'center'};
            //设置有排序,过滤属性的标题栏
            if(items.field.toLowerCase()=='yqcode'
                ||items.field.toLowerCase()=='unitname'
                ||items.field.toLowerCase()=='unitcode'){
                items.sort=true;
                items.filter=true;
                items.sortable=true;
            }
            //隐藏部分列
            if(items.field.toLowerCase()=='id'
                ||items.field.toLowerCase()=='version'
                ||items.field.toLowerCase()=='importtime'
                ||items.field.toLowerCase()=='datatime'){
                items.hide=true;
            }
            
            cols.push(items);
        }
        
        var table = layui.table;
        //第2个实例
        table.render({
            elem: '#fapztable',
            height: "full-100",
            size: 'sm' ,
            page:false,
            limit:15,
            //旧过滤样式关闭
            filter:{
                bottom:false
            },
            limits:[15,30,60,80,160,300,600,1000,2000],
            cols:[cols] ,
            data: data? data : [],
            done: function () {
                layui.soulTable.render(this)
                $("[data-field='id']").css('display','none');
                $("[data-field='financialyear']").css('display','none');
                $("[data-field='financialmonth']").css('display','none');
                $("[data-field='version']").css('display','none');
                $("[data-field='importtime']").css('display','none');
                $("[data-field='DATATIME']").css('display','none');
            }
        });
    }

4,注意

如果不将隐藏的列隐藏或者删除的话,在点击排序过滤时,就会出现标题栏与数据无法对应,隐藏列的数据就会显示出来

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
layui 数据表格中,删除行的实现可以通过以下步骤完成: 1. 首先需要给数据表格添加一个监听事件,监听删除操作: ``` table.on('tool(test)', function(obj){ var data = obj.data; if(obj.event === 'del'){ layer.confirm('真的删除行么', function(index){ obj.del(); //删除对应行(tr)的DOM结构,并更新缓存 layer.close(index); //向服务端发送删除指令 }); } else if(obj.event === 'edit'){ //编辑操作 } }); ``` 2. 在监听事件中,当点击删除按钮时,弹出确认框询问是否真的要删除该行数据,如果确认删除,则调用 obj.del() 方法删除对应行的 DOM 结构,并更新缓存。 3. 如果需要向服务端发送删除指令,可以在确认删除后,通过 ajax 请求向服务端发送删除请求。 完整代码示例: ``` <table class="layui-table" lay-data="{id:'test'}" lay-filter="test"> <thead> <tr> <th lay-data="{field:'id', width:80}">ID</th> <th lay-data="{field:'username', width:120}">用户名</th> <th lay-data="{field:'email', width:150}">邮箱</th> <th lay-data="{field:'sex', width:80, sort:true}">性别</th> <th lay-data="{field:'city', width:100}">城市</th> <th lay-data="{field:'sign', width:200}">签名</th> <th lay-data="{field:'experience', width:100, sort:true}">积分</th> <th lay-data="{field:'score', width:100, sort:true}">评分</th> <th lay-data="{field:'classify', width:100}">职业</th> <th lay-data="{field:'wealth', width:150, sort:true}">财富</th> <th lay-data="{fixed: 'right', width:165, align:'center', toolbar: '#barDemo'}"></th> </tr> </thead> <tbody> <tr> <td>1</td> <td>张三</td> <td>test@test.com</td> <td>男</td> <td>北京</td> <td>这是一段签名</td> <td>1000</td> <td>99</td> <td>工程师</td> <td>100000</td> <td><button class="layui-btn layui-btn-xs" lay-event="edit">编辑</button><button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</button></td> </tr> <tr> <td>2</td> <td>李四</td> <td>test@test.com</td> <td>女</td> <td>上海</td> <td>这是一段签名</td> <td>2000</td> <td>98</td> <td>设计师</td> <td>50000</td> <td><button class="layui-btn layui-btn-xs" lay-event="edit">编辑</button><button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</button></td> </tr> </tbody> </table> <script type="text/html" id="barDemo"> <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a> <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a> </script> <script> layui.use('table', function(){ var table = layui.table; //监听工具条 table.on('tool(test)', function(obj){ var data = obj.data; if(obj.event === 'del'){ layer.confirm('真的删除行么', function(index){ obj.del(); //删除对应行(tr)的DOM结构,并更新缓存 layer.close(index); //向服务端发送删除指令 }); } else if(obj.event === 'edit'){ //编辑操作 } }); }); </script> ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值