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 相关文章推荐
关闭浏览器窗口弹出提示框并且可以控制其失效
Apr 15 Javascript
Javascript的闭包详解
Dec 26 Javascript
JavaScript跨浏览器获取页面中相同class节点的方法
Mar 03 Javascript
js实现同一页面多个运动效果的方法
Apr 10 Javascript
JS事件添加和移出的兼容写法示例
Jun 20 Javascript
基于jQuery和hwSlider实现内容左右滑动切换效果附源码下载(一)
Jun 22 Javascript
Bootstrap源码解读导航(6)
Dec 23 Javascript
简单实现jQuery弹幕效果
May 06 jQuery
基于jQuery实现手风琴菜单、层级菜单、置顶菜单、无缝滚动效果
Jul 20 jQuery
vue 解决循环引用组件报错的问题
Sep 06 Javascript
js实现橱窗展示效果
Jan 11 Javascript
AI小程序之语音听写来了,十分钟掌握百度大脑语音听写全攻略
Mar 13 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
dede3.1分页文字采集过滤规则详说(图文教程)
2007/04/03 PHP
网友原创的PHP模板类代码
2008/09/07 PHP
解决ThinkPHP关闭调试模式时报错的问题汇总
2015/04/22 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
2016/10/03 PHP
thinkPHP自定义类实现方法详解
2016/11/30 PHP
js获取当前select 元素值的代码
2010/04/19 Javascript
在IE浏览器中resize事件执行多次的解决方法
2011/07/12 Javascript
ExtJs Excel导出并下载IIS服务器端遇到的问题
2011/09/16 Javascript
玩转jQuery按钮 请告诉我你最喜欢哪些?
2012/01/08 Javascript
纯文字版返回顶端的js代码
2013/08/01 Javascript
关于JavaScript中name的意义冲突示例介绍
2014/05/29 Javascript
javascript实现动态模态绑定grid过程代码
2014/09/22 Javascript
使用js画图之画切线
2015/01/12 Javascript
JavaScript中split() 使用方法汇总
2015/04/17 Javascript
jQuery实现自动调整字体大小的方法
2015/06/15 Javascript
JavaScript实现表格快速变色效果代码
2015/08/19 Javascript
JS随机洗牌算法之数组随机排序
2016/03/23 Javascript
node.js实现复制文本到剪切板的功能
2017/01/23 Javascript
jQuery事件详解
2017/02/23 Javascript
简单实现jQuery弹幕效果
2017/05/06 jQuery
解决JS内存泄露之js对象和dom对象互相引用问题
2017/06/25 Javascript
vue-cli 3.x 修改dist路径的方法
2018/09/19 Javascript
使用JS location实现搜索框历史记录功能
2019/12/23 Javascript
vue+elementUI动态增加表单项并添加验证的代码详解
2020/12/17 Vue.js
Python实现建立SSH连接的方法
2015/06/03 Python
python构建基础的爬虫教学
2018/12/23 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
CSS3等相关属性制作分页导航实现代码
2012/12/24 HTML / CSS
基于ccs3的timeline时间线实现方法
2020/04/30 HTML / CSS
乌克兰最大的家用电器和电子产品连锁店:Eldorado
2019/10/02 全球购物
个人自我评价范文
2014/02/05 职场文书
效能风暴心得体会
2014/09/04 职场文书
会计实训报告范文
2014/11/04 职场文书
借款民事起诉状范文
2015/05/19 职场文书
关于职业道德的心得体会
2016/01/18 职场文书
go语言中json数据的读取和写出操作
2021/04/28 Golang