彻底搞懂 Layui中的数据表格,更改请求参数等

Layui中的table

首先抄送一下官网的话
彻底搞懂 Layui中的数据表格,更改请求参数等_第1张图片
我们先来看一下案例


<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Layui中的表格title>
    <link rel="stylesheet" href="./layui/css/layui.css" />
    <script src="./layui/layui.js">script>
  head>
  <body>
    
    <table id="test" lay-filter="test">table>
  body>
html>
<script>
  layui.use('table', function () {
      
    var table = layui.table

    // 第一个实例
    table.render({
      
      elem: '#test', // 指定table模板  也就是上方的table DOM
      height: 400, // 指定Table模板的高度
      url: '/config/user.json', // 对应的数据接口,这边直接是请求的json文件
      page: true, // 开启分页 
      cols: [
        [
          //表头》》》指定的对应字段
          {
       field: 'id', title: 'ID', sort: true, fixed: 'left' },
          {
       field: 'username', title: '用户名' },
          {
       field: 'sex', title: '性别', sort: true },
          {
       field: 'city', title: '城市' },
          {
       field: 'sign', title: '签名' },
          {
       field: 'experience', title: '积分', sort: true },
          {
       field: 'score', title: '评分', sort: true },
          {
       field: 'classify', title: '职业' },
          {
       field: 'wealth', title: '财富', sort: true },
        ],
      ],
    })
  })
script>

实现效果
彻底搞懂 Layui中的数据表格,更改请求参数等_第2张图片
其实按照我个人的理解的话其实就是像ajax请求后台列表数据,包括样式,layui这个框架就全部集成给你做了,你不需要再去手动写样式,当然你如果要添加自定义列还是要自己手动写一下,例如我们在表格最后方添加一个编辑和删除。

彻底搞懂 Layui中的数据表格,更改请求参数等_第3张图片
我们可以看到我在cols中最后的位置添加了templet,里面放置了一串模板字符串(如果有ie兼容需求的话,最好不要使用模板字符串),再有的话,我们可以看到在里面我用到了{ { }}这个东西,这个东西现在不是叫插值表达式,layui有对他的特定叫法 layui.laytpl。不过其实用处并不是很广范,我们在这里使用就可以了。
其实像指定表格自定义列的话,也不单单只有这一种指定方式,也还有像
彻底搞懂 Layui中的数据表格,更改请求参数等_第4张图片

第三种方式
彻底搞懂 Layui中的数据表格,更改请求参数等_第5张图片
我们来看一下这三种方式实现的效果
彻底搞懂 Layui中的数据表格,更改请求参数等_第6张图片
自定义格也还有像toobar去指定模板,那种方式也是可以实现的,有兴趣的同学可以根据官网自己去尝试一下

接下来我们就应该点击编辑 或搜索触发一系列事件了,那么我们怎么去获取对应这一行的数据呢?

layui给我们提供了一个方法,其实也就是监听table表格中的事件,那么如何去监听呢?

// 点击表格头部,内部一些 dom上绑定了lay-event=""属性的一些节点所操作的事件
// tool中的test其实就是表格table节点的 lay-filter="test"这个属性值
table.on('tool(test)',function(obj){
     
// 在里面我们可以根据lay-event的值去进行相应的判断
      if (layEvent === 'del') {
     
        console.log(123)
        //删除
        layer.confirm('真的删除行么', function (index) {
     
          obj.del() //删除对应行(tr)的DOM结构,并更新缓存
          layer.close(index)
          //向服务端发送删除指令
        })
      } else if (layEvent === 'edit') {
     
        // 编辑
        // 数据回显
        $('#username').val()
        // ...等等
      }
})

我们现在可以看一下表格图,其实我们的分页是已经开启了的
彻底搞懂 Layui中的数据表格,更改请求参数等_第7张图片
每当我们去点击分页时,表格会自动像我们填写的地址发起请求
彻底搞懂 Layui中的数据表格,更改请求参数等_第8张图片
那么这样就好了吗?
肯定不行,我们如果把前端请求参数手动写死的话,如果后端查询的参数值不叫page?limit?叫pageNum,pageSize?怎么办呢?
其实layui也给了我们解决办法
我们只需要在配置项中添加一个request即可
彻底搞懂 Layui中的数据表格,更改请求参数等_第9张图片
这样的话其实我们就可以去自定义请求页码的名称了,改值的时候注意写pageName和limitName,这样才是代表page和limit。

像有时候我们也会碰到像条件搜索,那么我们如何解决这个问题呢?
彻底搞懂 Layui中的数据表格,更改请求参数等_第10张图片
官网给我们说的很清楚,只需要添加一个where即可,然后我们点击触发一定的表格重绘事件时,我们就可以根据这个where去发请求了。
那么我在这里添加了一个表格搜索框
彻底搞懂 Layui中的数据表格,更改请求参数等_第11张图片
使用toolbar去指定script/html模板
彻底搞懂 Layui中的数据表格,更改请求参数等_第12张图片
就会呈现这样一种效果
彻底搞懂 Layui中的数据表格,更改请求参数等_第13张图片
接下来我们就可以根据id也好class也好去获取他的val值,将他放置到我们的where请求对象中,这样就可以实现自定义请求参数。
彻底搞懂 Layui中的数据表格,更改请求参数等_第14张图片
其实像下面的table.reload这个也就是表格重绘了,因为我们发送了请求,那么我们就可以根据我们的条件去重新渲染表格了,

再有像其他的请求toke?请求方法,大家就可以参照文档了。

你可能感兴趣的:(前端,javascript)