(1)自动化渲染javascript
一、三种初始化渲染方式 (1)自动化渲染 <table class="layui-table" lay-data="{基础参数,详见右侧目录:基础参数选项}" lay-filter="test"> <thead> <tr> <th lay-data="{表头基础参数}">标题</th> …… </tr> </thead> </table>
(2)方法级渲染(推荐)html
<table id="demo"></table> var table = layui.table; //执行渲染 table.render({ elem: '#demo' //指定原始表格元素选择器(推荐id选择器) ,height: 315 //容器高度 ,cols: [{}] //设置表头 });
(3)转换静态表格java
var table = layui.table; //转换静态表格 table.init('demo', { height: 315 //设置高度 //支持全部基础参数 });
(1)使用场景api
场景一:下述 lay-data 里面的内容即为基础参数项,切记:值要用单引号 <table lay-data="{height:300, url:'/api/data'}" lay-filter="demo"> …… </table> 场景二:下述方法中的键值即为基础参数项 table.render({ height: 300 ,url: '/api/data' }); 更多场景:下述options即为含有基础参数项的对象 > table.init('filter', options); //转化静态表格 > var tableObj = table.render({}); tableObj.reload(options); //重载表格
(2)options缓存
table.render({ elem: '#test' //或 elem: document.getElementById('test') 等 , cols: [[ //标题栏 {checkbox: true} ,{field: 'id', title: 'ID', width: 80} ,{field: 'username', title: '用户名', width: 120} ]] , url: '/api/data/'//接口地址。默认会自动传递两个参数:?page=1&limit=30(该参数可经过 request 自定义)page 表明当前页码、limit 表明每页数据量 //where: {token: 'sasasas', id: 123} //若是无需传递额外参数,可不加该参数 //method: 'post' //若是无需自定义HTTP类型,可不加该参数 //request: {} //若是无需自定义请求参数,可不加该参数 //response: {} //若是无需自定义数据响应名称,可不加该参数 done: function(res, curr, count){ //若是是异步请求数据方式,res即为你接口返回的信息。 //若是是直接赋值的方式,res即为:{data: [], count: 99} data为当前页数据、count为数据总长度 console.log(res); //获得当前页码 console.log(curr); //获得数据总量 console.log(count); } , initSort: { field: 'id' //排序字段,对应 cols 设定的各字段名 ,type: 'desc' //排序方式 asc: 升序、desc: 降序、null: 默认排序 } , page: true , limits: [30,60,90,150,300] ,limit: 60 //默认采用60 , loading: false// 是否显示加载条 , id: 'idTest' //该参数在对表格的数据操做方法上是必要的传递条件,它是表格容器的索引。 ,width: 1000// 设定容器宽度 , skin: 'line' //行边框风格 ,even: true //开启隔行背景 ,size: 'sm' //小尺寸的表格 });
//表格重载 table.reload('idTest', options);
> table.set(options); //设定全局默认参数。options即各项基础参数 > table.on('event(filter)', callback); //事件监听。filter为容器lay-filter设定的值 > table.init(filter, options); //filter为容器lay-filter设定的值,options即各项基础参数。 > table.checkStatus(id); //获取表格选中行。id即为id参数对应的值 > table.render(options); //用于表格方法级渲染,核心方法。
(1)监听复选框选择异步
table.on('checkbox(test)', function(obj){ console.log(obj.checked); //当前是否选中状态 console.log(obj.data); //选中行的相关数据 console.log(obj.type); //若是触发的是全选,则为:all,若是触发的是单选,则为:one });
(2)监听单元格编辑工具
table.on('edit(test)', function(obj){ //注:tool是工具条事件名,test是table原始容器的属性 lay-filter="对应的值" console.log(obj.value); //获得修改后的值 console.log(obj.field); //当前编辑的字段名 console.log(obj.data); //所在行的全部相关数据 data[field] = value; //更新缓存中的值 });
(3)监听工具条点击post
监听排序切换 table.on('sort(test)', function(obj){ //注:tool是工具条事件名,test是table原始容器的属性 lay-filter="对应的值" console.log(obj.field); //当前排序的字段名 console.log(obj.type); //当前排序类型:desc(降序)、asc(升序)、null(空对象,默认排序) console.log(this); //当前排序的 th 对象 //尽管咱们的 table 自带排序功能,但并无请求服务端。 //有些时候,你可能须要根据当前排序的字段,从新向服务端发送请求,如: table.reload('idTest', { initSort: obj //记录初始排序,若是不设的话,将没法标记表头的排序状态。 layui 2.1.1 新增参数 ,where: { //请求参数 field: obj.field //排序字段 ,order: obj.type //排序方式 } }); });