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 相关文章推荐
基础的prototype.js常用函数及其用法
Mar 10 Javascript
用javascript将数据库中的TEXT类型数据动态赋值到TEXTAREA中
Apr 20 Javascript
JavaScript Event学习第二章 Event浏览器兼容性
Feb 07 Javascript
入门基础学习 ExtJS笔记(一)
Nov 11 Javascript
jQuery中创建实例与原型继承揭秘
Dec 21 Javascript
详解JavaScript中的表单验证
Jun 16 Javascript
基于jQuery实现仿QQ空间送礼物功能代码
May 24 Javascript
iOS和Android用同一个二维码实现跳转下载链接的方法
Sep 28 Javascript
基于JavaScript实现飘落星星特效
Aug 10 Javascript
Vue2.0 事件的广播与接收(观察者模式)
Mar 14 Javascript
vue 验证两次输入的密码是否一致的方法示例
Sep 29 Javascript
vue使用transition组件动画效果的实例代码
Jan 28 Vue.js
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的中问验证码
2006/11/25 PHP
解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
2013/07/03 PHP
yii2实现分页,带搜索的分页功能示例
2017/01/07 PHP
Javascript 变量作用域 两个可能会被忽略的小特性
2010/03/23 Javascript
通过Jscript中@cc_on 语句识别IE浏览器及版本的代码
2011/05/07 Javascript
jquery 实现表单验证功能代码(简洁)
2012/07/03 Javascript
js修改原型的属性使用介绍
2014/01/26 Javascript
jquery实现预览提交的表单代码分享
2014/05/21 Javascript
IE中getElementsByName()对有些元素无效的解决方案
2014/09/28 Javascript
JavaScript基础语法、dom操作树及document对象
2014/12/02 Javascript
jquery制作图片时钟特效
2020/03/30 Javascript
javascript  数组排序与对象排序的实例
2017/07/17 Javascript
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
2017/09/20 jQuery
nodejs中用npm初始化来创建package.json的实例讲解
2018/10/10 NodeJs
Angular8 实现table表格表头固定效果
2020/01/03 Javascript
Js视频播放器插件Video.js使用方法详解
2020/02/04 Javascript
vue使用nprogress加载路由进度条的方法
2020/06/04 Javascript
Openlayers+EasyUI Tree动态实现图层控制
2020/09/28 Javascript
如何利用nodejs实现命令行游戏
2020/11/24 NodeJs
[36:05]完美世界DOTA2联赛循环赛 Forest vs DM 第一场 11.06
2020/11/06 DOTA
浅析Python基础-流程控制
2016/03/18 Python
利用Python实现Windows定时关机功能
2017/03/21 Python
Python 中 list 的各项操作技巧
2017/04/13 Python
Python Dataframe 指定多列去重、求差集的方法
2018/07/10 Python
Python接口自动化测试的实现
2020/08/28 Python
HTML5页面直接调用百度地图API获取当前位置直接导航目的地的实现代码
2018/03/02 HTML / CSS
微软台湾官方网站:Microsoft台湾
2018/08/15 全球购物
澳大利亚在线家具店:Luxo Living
2019/03/24 全球购物
波兰珠宝品牌:YES
2019/08/09 全球购物
ANINE BING官方网站:奢华的衣橱基本款和时尚永恒的单品
2019/11/26 全球购物
中学生打架检讨书
2014/02/10 职场文书
追悼会主持词
2014/03/20 职场文书
财务会计大学生自我评价
2014/04/09 职场文书
2015年小学教师培训工作总结
2015/07/21 职场文书
Python 快速验证代理IP是否有效的方法实现
2021/07/15 Python
Spring Boot 的创建和运行示例代码详解
2022/07/23 Java/Android