渲染表格

本文介绍了Layui表格的三种渲染方式:方法渲染、自动渲染和转换静态表格。重点讲解了方法渲染,包括如何声明全局变量、指定原始元素、使用layuiTable进行渲染以及reload方法的两种使用方式。此外,还提到了cols参数设置、templet自定义模板列、toolbar工具栏配置以及分页和监听行事件等关键功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

渲染表格      (原理摘抄Layui)

  1. 表格的渲染能使我们的代码量大大减少,然后实现更加完整的表格,而无需向使用HTML的方法,表格的渲染实现的功能也更加的方便和精确,它能使我们在经常更改代码的时候实现其自身的功能,它用于对表格进行了一系列的改变,使其绑定数据。

 

  1. 渲染表格的方式三种:<1>方法渲染

<2>自动渲染

<3>转换静态表格

 

其中属方法渲染的数据更加完整,也更加的方便。方法渲染是用JS方法的配置完成渲染,无需写过多的HTML,在JS中指定原始元素。

自动渲染是HTML配置,自动渲染,无需写过多的JS,可专注于HTML表头部分。

转换静态表格是转化已有的表格元素,无需配置数据接口,在JS中指定表格元素,并简单地给表头加上自定义属性即可。

  1. 方法渲染的写法:最大的优势就是可以脱离HTML文件,而专注于JS本身。

在渲染表格时,首先要声明全局变量employee来作为表格的名称,然后在elem那里获取它的元素,指定原始table容器的选择器。还要声明layui里的layer、layuiTable用于对方法的渲染,然后声明一个函数来执行此方法。

Render()方法返回一个对象,它可用于对当前表格进行“渲染重载”。重载(reload)它的写法也有两种:

<1>table.reload(ID,options)  参数ID即为基础参数id对应的值,参数option即为各项基础参数。

 

  1.           HTML
  2. <table class="layui-table" lay-data="{id: 'idTest'}"> …… </table>
  3.  
  4. JS
  5. table.reload('idTest', {
  6. url: '/api/table/search'
  7. ,where: {} //设定异步数据接口的额外参数
  8. //,height: 300
  9. });              (摘自Layui表格)

 

<2>tableins.reload(options) 对象tableins来源于table.render()方法的实例,参数options即为各项基础参数。

 

  1. cols 为表头,设置表格的头部,设置cols的参数有很多,其中常用的有type、title、

field、hide、toolbar、temple等等。它可以设置的值很多,其中field对应的值为数据库中的值,title的值是你要设置表头的名称。

 

  1. Templet是自定义模板列,可以设置需要的值。然后它可以设置自定义按钮。在默认情况下,单元格的内容是完全按照数据接口返回的content原样输出,

 

  1. URL数据的异步请求参数。在没有用到条件查询,就执行方法渲染,返回本地data参数值(空值)。但是当它有参数值的时候就需要。但它有时候提交的参数也可以是不一样的,它传输的参数还可以是method、where、requst等,method返回的默认值为Post

 

7、page是设置表格显示数据时需不需要分页来实现数据的简单化,是页码的参数值。

Limit每页显示的条数,值务必对应limits参数的选项。Limits每页条数的选择项。

 

8、当我们如果设置了type属性值为number的时候就可以使用上面的监听行事件来监听获取选中行数据,尤其在修改和删除时体现的效果更为明显。

 

9、toolbar开启表格头部工具栏区域,该参数值支持四种类型值:

 

toolbar: '#toolbarDemo' //指向自定义工具栏模板选择器

toolbar: '<div>xxx</div>' //直接传入工具栏模板字符

toolbar: true //仅开启工具栏,不显示左侧模板

toolbar: 'default' //让工具栏左侧显示默认的内置模板

若需要显示打印、导出等功能,则必须开启该函数。

 

 

### 使用 LayUI 框架渲染表格的方法或示例 LayUI 是一个前端框架,提供了丰富的组件和功能,其中表格组件是一个非常常用的模块。通过方法渲染的方式,可以将数据从后端传递到前端并动态渲染表格。以下是一个完整的示例及说明: #### 1. 引入 LayUI 确保在项目中正确引入 LayUI 的 CSS 和 JS 文件。可以通过 CDN 或本地文件引入: ```html <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/layui-src/dist/css/layui.css"> <script src="https://cdn.jsdelivr.net/npm/layui-src/dist/layui.js"></script> ``` #### 2. HTML 结构 定义一个容器用于渲染表格,例如: ```html <table id="demo" lay-filter="test"></table> ``` #### 3. JavaScript 方法渲染 使用 `layui.use` 加载表格模块,并调用 `table.render` 方法进行渲染: ```javascript layui.use('table', function() { const table = layui.table; // 渲染表格 table.render({ elem: '#demo', // 绑定的 DOM 元素 height: window.screen.height * 0.59, // 表格高度 url: '/info/list', // 数据接口地址 method: 'post', // 请求方式 contentType: "application/json", // 设置请求头 page: true, // 开启分页 parseData: function(res) { // 解析返回的数据 return { code: 0, // 状态码 msg: "", // 提示信息 count: res.length, // 数据总数 data: res // 数据列表 }; }, cols: [[ // 表头配置 {field: 'infoId', title: 'ID', width: 80, sort: true, fixed: 'left'}, {field: 'countryId', title: '国家名称', width: 80}, {field: 'universityId', title: '用户名', width: 80}, {field: 'directionId', title: '性别', width: 80}, {title: '大学英文', width: 170, templet: '<div>{{d.university.universityNameEN}}</div>'} ]], text: {none: '无数据'} // 当无数据时显示的内容 }); }); ``` #### 4. 后端接口示例 后端需要返回符合 LayUI 表格要求的数据格式。以下是一个 PHP 示例: ```php public function index_data2() { $p = input('p') ?? 1; // 获取当前页码,默认为第一页 $p_n = input('p_n') ?? config('paginate.list_rows'); // 获取每页显示条数,默认为系统配置值 $list = Db::table('tp_goods')->order('goods_id ASC')->limit(($p - 1) * $p_n, $p_n)->select(); // 查询数据 $count = Db::table('tp_goods')->count(); // 查询总记录数 return json(['code' => 0, 'msg' => '加载成功!', 'data' => $list, 'count' => $count]); // 返回数据 } ``` #### 5. 常见问题及解决方法 - **问题:表格无法渲染数据** 可能原因:后端返回的数据格式不符合 LayUI 的要求。确保返回的数据包含 `code`、`msg`、`count` 和 `data` 字段[^1]。 - **问题:请求方式不匹配** 默认情况下,LayUI 使用 GET 请求获取数据。如果后端只支持 POST 请求,则需要在 `table.render` 中添加 `method: 'post'` 属性[^2]。 - **问题:分页功能无效** 确保后端返回的数据中包含 `count` 字段,表示总记录数。同时,前端需要开启分页功能 `page: true`[^4]。 #### 6. 扩展功能 可以通过 `templet` 自定义列内容,或者通过工具栏按钮实现行操作。例如: ```html <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> ``` 在 `table.render` 中添加工具栏配置: ```javascript toolbar: '#toolbarDemo', // 工具栏模板 defaultToolbar: ['filter', 'exports', 'print', { // 自定义工具栏按钮 title: '提示', layEvent: 'LAYTABLE_TIPS', icon: 'layui-icon-tips' }], ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值