Layui table 组件的使用之初始化加载数据、数据刷新表格、传参数


Posted in Javascript onSeptember 11, 2017

背景

笔者之前一直使用 bootstrap table ,因为当前项目中主要使用 Layui 框架,于是也就随了 Layui table ,只是在使用的时候出现了一些问题,当然也是怪自己不熟悉的锅吧!

出现的问题:

1、使用 Layui 官方提供的 【转换静态表格】 方式初始化加载时报 id 找不到的错误(自己的锅)

2、传递参数问题(姑且算是 Layui 官方的锅)

笔者使用的 table 加载刷新方案

有一个页面,左侧是一个 tree,右侧是一个 table,默认 table 加载全数据,当点击 tree 节点时,table 进行筛选,很简单的需求吧!

Layui table 组件的使用之初始化加载数据、数据刷新表格、传参数 

这里我们不谈 tree 的使用,将仅仅贴出 table 的相关方法!

首先贴出源表格代码:

<table class="layui-table" lay-filter="EditListTable">
 <thead>
 <tr>
  <th lay-data="{field:'Index', width:60}">序号</th>
  <th lay-data="{field:'UserId', width:80}">销售ID</th>
  <th lay-data="{field:'UserName', width:80}">姓名</th>
  <th lay-data="{field:'Year', width:70}">年份</th>
  <th lay-data="{field:'M01', width:80}">一月</th>
  <th lay-data="{field:'M02', width:80}">二月</th>       
  <th lay-data="{field:'YearValue', width:80, fixed: 'right'}">年度</th>
  <th lay-data="{width:100, align:'center', toolbar: '#barDemo1', fixed: 'right'}">操作</th>
 </tr>
 </thead>
</table>
<script type="text/html" id="barDemo1">
 <a class="layui-btn layui-btn-mini" lay-event="edit">编辑</a>
</script>

直接在代码中通过注释讲解:

(function () {
 //加载列表的后端 url
 var getListUrl = '';
 //对于任意一个 table,按照官方的说法,有三种不同的初始化渲染方式,不多介绍,而这里使用的方式姑且看做第三种:转换静态表格 方式
 //转换静态表格方式,自然首先需要有一个已经存在的表格,然后再通过 js 方式转化为 Layui 表格
 //无论哪种方式的 Layui table 初始化自然需要配置项
 //通过转化的方式初始化 Layui table,配置项部分可以在 源table中,部分在js中,源 table 的源代码上文已经给出,下面给出一个示例的 js 中的配置项
 var tableOptions = {
  url: getListUrl, //请求地址
  method: 'POST', //方式
  id: 'listReload', //生成 Layui table 的标识 id,必须提供,用于后文刷新操作,笔者该处出过问题
  page: false, //是否分页
  where: { type: "all" }, //请求后端接口的条件,该处就是条件错误点,按照官方给出的代码示例,原先写成了 where: { key : { type: "all" } },结果并不是我想的那样,如此写,key 将是后端的一个类作为参数,里面有 type 属性,如果误以为 key 是 Layui 提供的格式,那就大错特错了
  response: { //定义后端 json 格式,详细参见官方文档
   statusName: 'Code', //状态字段名称
   statusCode: '200', //状态字段成功值
   msgName: 'Message', //消息字段
   countName: 'Total', //总数字段
   dataName: 'Result' //数据字段
  }
 };
 //
 layui.use(['table', 'layer'], function () {//layui 模块引用,根据需要自行修改
  var layer = layui.layer, table = layui.table;
  //表初始化
  var createTable = function () {
   table.init('EditListTable', tableOptions);// table lay-filter
  };
  //表刷新方法
  var reloadTable = function (item) {
   table.reload("listReload", { //此处是上文提到的 初始化标识id
    where: {
     //key: { //该写法上文已经提到
      type: item.type, id: item.id
     //}
    }
   });
  };
  //表初始化
  createTable();
  //其他和 tree 相关的方法,其中包括 点击 tree 项调用刷新方法
 });
})();

后端方法:

//本示例中,后台代码写法
public ActionResult GetGoalList(string type, string id)
{
  //
}

//如果按照官方文档条件项,应该是下面的写法

public ActionResult GetGoalList(keyItem key)
{
  //
}
public class keyItem
{
 public string id { get; set; }
 public string type { get; set; }
}

总结

以上所述是小编给大家介绍的Layui table 组件的使用之初始化加载数据、数据刷新表格、传参数,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript 继承详解 第一篇
Aug 30 Javascript
给Flash加一个超链接(推荐使用透明层)兼容主流浏览器
Jun 09 Javascript
Jquery中$.post和$.ajax的用法小结
Apr 28 Javascript
jQuery中prepend()方法使用详解
Aug 11 Javascript
利用JQuery写一个简单的异步分页插件
Mar 07 Javascript
javascript的replace方法结合正则使用实例总结
Jun 16 Javascript
AngularJS 避繁就简的路由
Jul 01 Javascript
基于 Bootstrap Datetimepicker 联动
Aug 03 Javascript
vue中appear的用法
Aug 17 Javascript
vue路由跳转时判断用户是否登录功能的实现
Oct 26 Javascript
Angular4学习教程之HTML属性绑定的方法
Jan 04 Javascript
JavaScript监听一个DOM元素大小变化
Apr 26 Javascript
Vuejs 页面的区域化与组件封装的实现
Sep 11 #Javascript
js封装成插件的步骤方法
Sep 11 #Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
Sep 11 #Javascript
Chrome调试折腾记之JS断点调试技巧
Sep 11 #Javascript
JS中的Replace()传入函数时的用法详解
Sep 11 #Javascript
浅谈vue+webpack项目调试方法步骤
Sep 11 #Javascript
JS实现快速比较两个字符串中包含有相同数字的方法
Sep 11 #Javascript
You might like
php.ini 配置文件的深入解析
2013/06/17 PHP
PHP中使用Imagick操作PSD文件实例
2015/01/26 PHP
ecshop 2.72如何修改后台访问地址
2015/03/03 PHP
PHP利用DWZ.CN服务生成短网址
2019/08/11 PHP
laravel-admin 在列表页添加自定义按钮的例子
2019/09/30 PHP
PHP设计模式(九)外观模式Facade实例详解【结构型】
2020/05/02 PHP
JavaScript 读取元素的CSS信息的代码
2010/02/07 Javascript
js的表单操作 简单计算器
2011/12/29 Javascript
JQuery事件e参数的方法preventDefault()取消默认行为
2013/09/26 Javascript
js设置cookie过期当前时间减去一秒相当于立即过期
2014/09/04 Javascript
JQuery页面地址处理插件jqURL详解
2015/05/03 Javascript
深入浅析AngularJS中的module(模块)
2016/01/04 Javascript
jQuery Ajax页面局部加载方法汇总
2016/06/02 Javascript
jQuery获取table行数并输出单元格内容的实现方法
2016/06/30 Javascript
浅谈sass在vue注意的地方
2017/08/10 Javascript
简单实现jQuery弹窗效果
2017/10/30 jQuery
使用vue脚手架(vue-cli)搭建一个项目详解
2019/05/09 Javascript
jquery中attr、prop、data区别与用法分析
2019/09/25 jQuery
react-native聊天室|RN版聊天App仿微信实例|RN仿微信界面
2019/11/12 Javascript
node.js中path路径模块的使用方法实例分析
2020/02/13 Javascript
javascript实现拖拽碰撞检测
2020/03/12 Javascript
[00:32]2018DOTA2亚洲邀请赛Mineski出场
2018/04/04 DOTA
[01:08:30]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第一场 2月28日
2021/03/11 DOTA
Python找出文件中使用率最高的汉字实例详解
2015/06/03 Python
python 实现删除文件或文件夹实例详解
2016/12/04 Python
Python中循环后使用list.append()数据被覆盖问题的解决
2018/07/01 Python
python实现石头剪刀布程序
2021/01/20 Python
python 怎样将dataframe中的字符串日期转化为日期的方法
2019/09/26 Python
Mysql数据库反向生成Django里面的models指令方式
2020/05/18 Python
python开发一款翻译工具
2020/10/10 Python
蒂娜商店:Tiina the Store
2019/12/07 全球购物
党校个人自我鉴定范文
2014/03/28 职场文书
机械机修工岗位职责
2014/08/03 职场文书
自主招生专家推荐信
2015/03/26 职场文书
小学生作文写作技巧100例,非常实用!
2019/07/08 职场文书
利用Selenium添加cookie实现自动登录的示例代码(fofa)
2021/05/08 Python