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 相关文章推荐
window.onload和$(function(){})的区别介绍
Oct 30 Javascript
ExtJS4中使用mixins实现多继承示例
Dec 03 Javascript
使用jquery局部刷新(jquery.load)从数据库取出数据
Jan 22 Javascript
js的toLowerCase方法用法实例
Jan 27 Javascript
JavaScript设计模式学习之“类式继承”
Mar 12 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
Dec 17 Javascript
jQuery ajaxSubmit 实现ajax提交表单局部刷新
Jul 04 Javascript
Vue导出json数据到Excel电子表格的示例
Dec 04 Javascript
Js面试算法详解
Apr 08 Javascript
通过循环优化 JavaScript 程序
Jun 24 Javascript
Angular.JS读取数据库数据调用完整实例
Jul 02 Javascript
微信小程序实现拍照和相册选取图片
May 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
php中session与cookie的比较
2015/01/27 PHP
PHP实现返回JSON和XML的类分享
2015/01/28 PHP
Yii实现文章列表置顶功能示例
2016/10/18 PHP
php生成条形码的图片的实例详解
2017/09/13 PHP
背景音乐每次刷新都可以自动更换
2007/02/01 Javascript
用jQuery扩展自写的 UI导航
2010/01/13 Javascript
JavaScript 一道字符串分解的题目
2011/08/03 Javascript
jQuery Tools tooltip使用说明
2012/07/14 Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
2016/01/05 Javascript
jQuery ajax应用总结
2016/06/02 Javascript
Bootstrap对话框使用实例讲解
2016/09/24 Javascript
jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法
2017/03/03 Javascript
Node.JS枚举统计当前文件夹和子目录下所有代码文件行数
2019/08/23 Javascript
Centos7 安装Node.js10以上版本的方法步骤
2019/10/15 Javascript
微信小程序实现多选框功能的实例代码
2020/06/24 Javascript
python3使用urllib示例取googletranslate(谷歌翻译)
2014/01/23 Python
详解pyqt5 动画在QThread线程中无法运行问题
2018/05/05 Python
Python基于opencv调用摄像头获取个人图片的实现方法
2019/02/21 Python
python操作文件的参数整理
2019/06/11 Python
Python中一个for循环循环多个变量的示例
2019/07/16 Python
Python+Pyqt实现简单GUI电子时钟
2021/02/22 Python
美国内衣第一品牌:Hanes(恒适)
2016/07/29 全球购物
Hotels.com台湾:饭店订房网
2017/09/06 全球购物
四种会话跟踪技术
2015/05/20 面试题
业务员岗位职责范本
2013/12/15 职场文书
社会实践心得体会
2014/01/03 职场文书
护理专业自荐信范文
2014/02/26 职场文书
投标文件签署授权委托书范本
2014/10/12 职场文书
2014年实习班主任工作总结
2014/11/08 职场文书
投标承诺函范文
2015/01/21 职场文书
2015年五一劳动节活动总结
2015/02/09 职场文书
创业计划书之服装
2019/10/07 职场文书
祝福语集锦:朋友新店开业祝福语
2019/12/10 职场文书
如何用python绘制雷达图
2021/04/24 Python
Java 在线考试云平台的实现
2021/11/23 Java/Android
JS轻量级函数式编程实现XDM二
2022/06/16 Javascript