冰冰点灯
照亮我的家门
一、快速使用
 
layui.use("tabel",function{
    var tabel= layui.tabel;
   tabel.render({
         elem:"#demo",  // <tabel id="demo"></table>
         url:'js/user.json',//数据接口
       height:400,//容器的高度
         page:'true',//开启分页
         cols:[[ //表头
                    {field:'id',title:'用户编号',sort:true,width:80},
                    {field:'username',title:'用户姓名',width:100},
                    {field:'sex',title:'性别',sort:true,width:80},
                    {field:'city',title:'城市',width:100},
                    {field:'sign',title:'签名',width:100},
 
                ]],  //fileld对应数据接口对应的字段
        })
})
 
二、三种初始化渲染方式
 
  1、方法渲染(一般使用这个方法)
        快速使用(上面讲): 将基础参数放在js中,且原始table标签只需要一个选择器。
 
  2、自动渲染 
    html配置,自动渲染 ,无需写过多的js,可专注表头部分
 
   1)带有class="layui-tabel" 的<table>
   2)对标签设置属性lay-data="”用于配置基础参数
   3)在<tr>标签中设置属性lay-data="”用于配置表头信息
 
  <tabel class="layui-tabel" lay-data="{url:'user.json',page:true}">
  <tr lay-data="{field:'id',width:80}"></tr>
   <tr lay-data="{field:'username'}"></tr>
    <tr lay-data="{field:'sex',sort:true}"></tr>
  </table>
 
  2、转换静态表格
    转换一段已有的表格元素,无需配置数据接口 ,在js中指定表格元素,并简单地给表头加上自定义属性即可
 
    <tabel lay-filter="dome">
        <thead>
          <th>
                <tr lay-data="{field:'id'}"></tr>
                <tr lay-data="{field:'username'}"></tr>
               <tr lay-data="{field:'sex',sort:true}"></tr>
           </th>
       </thead>
       <tbody>
            <tr>
                 <td>开得飞快</td>
                <td>258963</td>
                <td>人长久是否觉得对方</td>
            </tr>
     </tbody>
  </table>
 
  //执行用于转换表格js方法
    layui.use("tabel",function{
        var tabel= layui.tabel;
    //转换静态表格
         tabel.init('demo',{
           height:315,//设置高度
                  //支持所有基础参数
          });
  })
 
 
二、基础参数的使用场景
 
  cols - 表头参数 -查看
 
  lay-event给元素绑定事件名
 
  1、开启分页和开启工具栏
 
    开启分页 page:ture,
    设置表格工具栏toobar:“#toolbar”
 
    {field:'',type:'checkbox'}, //type列的类型,列隐藏 hide:true
    {field:'',typ:'numbers'},
    {field:'操作',toobar:'#tool'},//绑定表格工具栏
 
  2、监听头工具栏事件
 
    <tabel lay-filter="demo"></tabel>
    tabel.on('toolbar(demo)',function(obj){
 
      //obj.config对象中可以获取id的属性值,即表示当前容器id属性值,也就是demo
      //获取当前表格被选中记录对象,返回数据
     var checksatatus = tabel.checkStatus(obj.config.id);
 
      //获取事件名 lay-event的属性值
        var eventName =obj.event;
 
      //判断事件名执行对应的代码
 
        switch(eventName){
            case "getCheckData":
                //获取被选中的记录的数组
                var arr = checksatatus.data;
                //将数组解析成字符串
                layer.alert(JSON.stringify(arr));
            break;
 
            case "getCheckLength":
                //获取被选中的记录的数组
                var arr = checksatatus.data;
                layer.msg("选中了"+arr.length+"条记录!");
            break;
 
            case "isAll":
                 //通过isAll属性判断是否全选
              var flag = checksatatus.isAll;
                  var str = flag ? '全选' : '未全选';
 
                 layer.msg(str);
              break;
        
         }
    })
    解释:‘demo’是容器tabel上面lay-filter属性值
 
  3、监听行工具栏事件
 
    tabel.on('tool(demo)',function(obj){
 
      //得到相关行的操作信息
      var tr = obj.data;
 
      //得到事件名 lay-event的属性值
      var eventName =obj.event;
 
      //判断事件名执行对应的事件方法
        if(eventName == "del") { //删除
      //确认框
          layer.confirm("您确认要删除吗?",function(index){
              //删除指定tr del()
                obj.del();
              //关闭弹出层(index是当前弹出层的下标)
                layer.close(index);
                
       })
    
 
        }else if(eventName =='edit'){ //编辑
            //输入框
            layer.prompt({
 
                //表单元素的类型 0-文本框;1-密码框;2-文本域
                formType:0,
                value:tr.username, //设置输入框的值
 
            },function(value,index){
            //修改指定单元格的值,value表示修改后的值
                
                  obj.update({
                      username:value
                  });
                  layer.close(index); //关闭弹出层
              })
        }
    });
 
  4、开启单元格编辑---监听单元格事件
 
    开启单元格编辑在表头设置edit:'text'属性,单元格编辑类型(默认不开启)目前只支持:text(输入框)
 
      tabel.on('edit(test)',function(obj){
          //获取修改后的值
          var value = obj.value;
          //得到当前修改的对象
          var data = obj.data;
          //得到修改的字段名
          var field = data.field;
            layer.msg("[ID:"+data.id+"]的"+field+"字段的值修改为"+value);
      })
 
  5、数据表格的重载 (搜索等)
 
    在layui.use()里引入 jquery对象:var $ = layui . jquery;
 
    //给指定元素绑定事件
    $(document).on('click','#seacrchBtn',function(data){
       //获取搜索文本框对象
        var search = $("#demoReload");
 
     //调用数据表格的重载方法   table.reload(ID,options) 
    table.reload('demo',{
        where:{  //设置需要传递的参数
             id:search.val()  //多个搜索框可写多个值
       
        },
          page:{
              //让条件查询从第一页开始,如果未设置则从当前页开始查询,此页前面的所有数据不纳入条件筛选
            curr:1, //从第一页开始
        }
       })
     })
posted on 2021-11-22 12:01  冰冰点灯  阅读(865)  评论(0)    收藏  举报