渲染表格


开发工具与关键技术:vsX 和 jquery

作者:戴怡斌

撰写时间:2019.4.16

下面就来看一个渲染表格的案列,表格相信大家很清楚,几乎随处可见,书本上,广告里等等。

表格用来记录某些事物,也可以登记人数,还可以记录人口中男女的比例

比如,一款游戏,好不好玩,有多少人下载,喜欢玩这款游戏的是未成年人多还是青年多。

怎样让它一眼看上去就很明白呢。这个时候一个表格就可以了。

以一个游戏表格的案列来给你们详解

打开vs创建这些不多说,创建完后,先引用js,不然$会一直会报错,

创建表格直接引用layui,这是别人已经建好的,直接引用就可以,里面也有css的文件,根据自己的情况引用。

之后先定义两个变量,

var tables;//layui的表格

var layer, layuiTable;//保存layui模块以便全局使用

接下来就开始了,

layui.use([‘table’, ‘layer’], function () {};

渲染表格有多种方法,方法渲染,自动渲染 最常用的是方法渲染

layer = layui.layer, layuiTable = layui.table;

现在开始制作表格中的表头

tables= layuiTable.render({});

如果使用方法渲染,那数据接口就不需要了

url: '/Demo/table/
’ //数据接口

可以直接指定原始表格元素选择器(推荐id选择器)

elem:
‘#Demo’

最后设置表头,cols,随自己喜欢,这里以一款游戏为案列

cols: [[{ title: ‘序号’, type: ‘numbers’ },]],

type设定的类型有几种,复选框用checknox

单选框用radio,
normal:常规列,不需要设定。

序号列,title:设定标题名称,type:设定列的类型,numbers:序号列

图片里的 field:设定字段名,字段名非常重要,而且也是表格数据列的唯一标识

图片里的 align:单元格排列方式,通常默认的都是left,也就是左边

可以设置的值有 center:居中,right:靠右

图片里的 width:宽度,单位有%,px,rem

表格渲染就在这里制作完成了。
在这里插入图片描述
Css的样式用的也是layui里的css

Layui里的css样式也早就设置好了的,只需要引用就行,不需要自己写

这里渲染的只有表头,表单并没有渲染

制作完成的最后,效果图献上
在这里插入图片描述
这里面的数据只是一个自己写出来消遣的,不能当真。

表格的应用有很多,这只是其中相对简单的一种,

Css的样式图就不发了,大家都会。最后到这里就结束了。

### 使用 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、付费专栏及课程。

余额充值