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 相关文章推荐
PHP 与 js的通信(via ajax,json)
Nov 16 Javascript
js处理自己不能定义二维数组的方法详解
Mar 03 Javascript
jquery的clone方法应用于textarea和select的bug修复
Jun 26 Javascript
JavaScript+html5 canvas制作的百花齐放效果完整实例
Jan 26 Javascript
AngularJS使用ng-options指令实现下拉框
Aug 23 Javascript
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
Jan 20 Javascript
BootStrap fileinput.js文件上传组件实例代码
Feb 20 Javascript
JS获取数组中出现次数最多及第二多元素的方法
Oct 27 Javascript
浅析java线程中断的办法
Jul 29 Javascript
webpack 动态批量加载文件的实现方法
Mar 19 Javascript
Javascript执行流程细节原理解析
May 14 Javascript
微信小程序scroll-view不能左右滑动问题的解决方法
Jul 09 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
数据库的日期格式转换
2006/10/09 PHP
php中iconv函数使用方法
2008/05/24 PHP
一些需要禁用的PHP危险函数(disable_functions)
2012/02/23 PHP
php递归删除目录下的文件但保留的实例分享
2014/05/10 PHP
PHP页面跳转操作实例分析(header方法)
2016/09/28 PHP
jquery控制左右箭头滚动图片列表的实例
2013/05/20 Javascript
基于jQuery实现表单提交验证
2014/11/24 Javascript
Web技术实现移动监测的介绍
2017/09/18 Javascript
完美解决axios在ie下的兼容性问题
2018/03/05 Javascript
Vue2 轮播图slide组件实例代码
2018/05/31 Javascript
layui 监听表格复选框选中值的方法
2018/08/15 Javascript
swiper在vue项目中loop循环轮播失效的解决方法
2018/09/15 Javascript
vscode 开发Vue项目的方法步骤
2018/11/25 Javascript
JavaScript数据结构与算法之检索算法实例分析【顺序查找、最大最小值、自组织查询】
2019/02/22 Javascript
详解React项目中碰到的IE问题
2019/03/14 Javascript
layui输入框只允许输入中文且判断长度的例子
2019/09/18 Javascript
vue 实现LED数字时钟效果(开箱即用)
2019/12/08 Javascript
深入理解webpack process.env.NODE_ENV配置
2020/02/23 Javascript
Node.js 深度调试方法解析
2020/07/28 Javascript
在Python中使用列表生成式的教程
2015/04/27 Python
Windows系统下pycharm中的pip换源
2020/02/23 Python
Pycharm+Python工程,引用子模块的实现
2020/03/09 Python
Python爬取微信小程序Charles实现过程图解
2020/09/29 Python
python查询MySQL将数据写入Excel
2020/10/29 Python
Pandas的数据过滤实现
2021/01/15 Python
超酷炫 CSS3垂直手风琴菜单
2016/06/28 HTML / CSS
html5菜单折纸效果
2014/04/22 HTML / CSS
浅谈HTML5中dialog元素尝鲜
2018/10/15 HTML / CSS
美国隐形眼镜销售网站:ContactsDirect
2017/10/28 全球购物
夏洛特和乔治婴儿和儿童时装精品店:Charlotte and George
2018/06/06 全球购物
请描述一下”is a”关系和”has a”关系
2015/02/03 面试题
销售总监工作职责
2013/11/21 职场文书
文明餐桌活动方案
2014/02/11 职场文书
中考标语大全
2014/06/05 职场文书
大四学生个人总结
2015/02/15 职场文书
浅谈css实现背景颜色半透明的两种方法
2021/12/06 HTML / CSS