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 相关文章推荐
获取DOM对象的几种扩展及简写
Oct 09 Javascript
兼容IE、FireFox、Chrome等浏览器的xml处理函数js代码
Nov 30 Javascript
关于JavaScript与HTML的交互事件
Apr 12 Javascript
javascript+canvas实现刮刮卡抽奖效果
Jul 29 Javascript
javascript适合移动端的日期时间拾取器
Nov 10 Javascript
利用JavaScript判断浏览器类型及版本
Aug 23 Javascript
微信小程序 image组件binderror使用例子与js中的onerror区别
Feb 15 Javascript
Angular实现的敏感文字自动过滤与提示功能示例
Dec 29 Javascript
vue一个页面实现音乐播放器的示例
Feb 06 Javascript
使用layer弹窗和layui表单实现新增功能
Aug 09 Javascript
Vue.js实现表格渲染的方法
Sep 07 Javascript
Vue组件间通信 Vuex的用法解析
Aug 05 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面试题集锦
2012/03/08 PHP
php使用Cookie实现和用户会话的方法
2015/01/21 PHP
php中数据库连接方式pdo和mysqli对比分析
2015/02/25 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
2017/01/22 PHP
PHP机器学习库php-ml的简单测试和使用方法
2017/07/14 PHP
详解PHP如何更好的利用PHPstorm的自动提示
2017/08/18 PHP
PHP注释语法规范与命名规范详解篇
2018/01/21 PHP
经典海量jQuery插件 大家可以收藏一下
2010/02/07 Javascript
JavaScript 滚轮事件使用说明
2010/03/07 Javascript
jQuery 属性选择器element[herf*='value']使用示例
2013/10/20 Javascript
jQuery+PHP星级评分实现方法
2015/10/02 Javascript
基于Jquery实现万圣节快乐特效
2015/11/01 Javascript
Bootstrap每天必学之表格
2015/11/23 Javascript
js实现人民币大写金额形式转换
2016/04/27 Javascript
JavaScript程序中实现继承特性的方式总结
2016/06/24 Javascript
Canvas实现放射线动画效果
2017/02/15 Javascript
COM组件中调用JavaScript函数详解及实例
2017/02/23 Javascript
tsconfig.json配置详解
2019/05/17 Javascript
vue 实现特定条件下绑定事件
2019/11/09 Javascript
vue 手机物理监听键+退出提示代码
2020/09/09 Javascript
[47:21]Liquid vs TNC Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
Python 的 with 语句详解
2014/06/13 Python
Python搜索引擎实现原理和方法
2017/11/27 Python
numpy 计算两个数组重复程度的方法
2018/11/07 Python
Python网页正文转换语音文件的操作方法
2018/12/09 Python
python之线程通过信号pyqtSignal刷新ui的方法
2019/01/11 Python
python 非线性规划方式(scipy.optimize.minimize)
2020/02/11 Python
python和c语言哪个更适合初学者
2020/06/22 Python
HTML5离线应用与客户端存储的实现
2018/05/03 HTML / CSS
物流专业大学生求职信范文
2013/10/28 职场文书
村官学习十八大感想
2014/01/15 职场文书
党支部公开承诺书
2014/03/28 职场文书
银行业务授权委托书
2014/10/10 职场文书
教师考核评语大全
2014/12/31 职场文书
前台接待岗位职责范本
2015/04/03 职场文书
MySQL 数据类型详情
2021/11/11 MySQL