layui-table组件在企业开发中的使用记录

简介:

layui table简介

layui是一套控件集 官网 基本上常用的组件都包含了。优点是封装了整套常用的ui。不足的地方是api不是很清晰,一些原来在类似easyui这种纯jquery控件集中有的方法事件这套控件集可能没有。 
table组件是一般企业开发中最常用到的组件,layui的table组件满足了绝大部分需求API,部分定制功能可能需要修改源码,或者用比较生硬的方法去修改。希望后续版本能更全面一些

普通页面增删改查

<table id="table" lay-filter="tableFilter"></table>
<script type="text/html" id="toolCol">
 <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
 <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>

var gridParam = {
    elem: "#table"
    , id: "table"
    , height: 'full-53'
    , method: "post"
    , size:"sm"//有lg和sm,lg对于笔记本来说太大了。
    , limit: 20
    , limits: [20, 50, 100]
 , page: true //开启分页
    , response: {
        countName: 'totalElements' //数据总数的字段名称,默认:count
        , dataName: 'content' //数据列表的字段名称,默认:data
        , statusName: null
        , statusCode: null
    }
 , url: 'xxxx/xx/xx'
 , cols: [[
  {fixed: 'left', type: 'checkbox'}
  , {fixed: 'left', title: '序号', type: 'numbers'}
  , {field: 'username', title: '用户名', minWidth: 100}
  ... 
  , {fixed: 'right', title: '操作', minWidth: 150, align: 'center', toolbar: '#toolCol'}
 ]]
};
//表格初始化
layui.use('table', function () {
        table.render(gridParam);
        table.on('tool(tableFilter)', function (obj) {
            if(obj.event=="edit"){
        xxx
   }else if(obj.event=="del"){
        xxx
   }
        });
    });
//重新查询
$("search").click(function(){
        layui.table.reload("table", {
            where: $("searchForm").serializeJSON()
        });
});

注意事项:由于获取列内容是通过[]的方式从查询结果中获取,所以不能直接取多层结构下的数据例如aa.bb.cc只能通过

templet:"<div>{{d.exteriorOperation.projectNo}}</div>" 

的方式取值。

可编辑表格

由于table组件不支持复杂的输入操作,仅支持文本框,所以我们只有通过templet包裹控件的模式进行表格的编辑操作 
例如:

<script type="text/html" id="valuationTypeCol">
<!--lay-ignore:默认表格中的select会渲染为layui的样式,加了此属性后不会自动渲染 -->
 <select name="aa[]bb" class="form-control input-sm laytable-input" lay-ignore ">
  <option value="0">0</option>
  <option value="1">0</option>
 </select>
</script>
, {fixed: 'right',field: 'valuationType', title: '计价方式', minWidth: 80,templet:'#valuationTypeCol'}

注意事项:

  1. 对于有左侧固定,右侧固定的表格layui使用的模式是生成3个table互相遮盖,所以页面取值时会存在重复数据,只能依据class来获取layui-table-fixed-r 这个class下的表单内容就不会重复
  2. 相同的原因所以更改行高要改三个地方,左中右三个field中都需要指定style:"height:65px;"来修改行高

行背景色修改

修改checkbox选中行的背景色

var checkStyle={
    "color": "#a94442"
    ,"background-color": "#f2dede"
};
var defaultStyle = {
    "background-color": "#fff"
    ,"color": "#666"
}
//layui-form-checked 为选中checkbox样式(div模拟的),由于表格可能存在左侧固定,非固定列,右侧固定列三个模块,所以使用此方法增加背景色
table.on('checkbox(inquiryParity)', function(obj){
//obj.data.LAY_TABLE_INDEX是行序号
 $("tr[data-index="+obj.data.LAY_TABLE_INDEX+"]").css(obj.checked?checkStyle:defaultStyle );
 });


目录
相关文章
|
5月前
|
前端开发 数据格式
jeecgboot前端antd Table组件动态合并单元格
jeecgboot前端antd Table组件动态合并单元格
181 0
|
9月前
|
容器
layui组件table定时刷新的解决方案
layui组件table定时刷新的解决方案
158 0
|
7月前
|
存储 前端开发 数据挖掘
前端框架Layui实现动态表格效果用户管理实例(对表格进行CRUD操作-附源码)(一)
前端框架Layui实现动态表格效果用户管理实例(对表格进行CRUD操作-附源码)
123 0
|
9月前
|
JSON PHP 数据格式
layui框架实战案例(1):layui组件table异步加载数据结合php后台动态翻页的解决方案
layui框架实战案例(1):layui组件table异步加载数据结合php后台动态翻页的解决方案
204 0
|
4月前
|
JavaScript Java
layui会议OA项目数据表格新增改查
layui会议OA项目数据表格新增改查
33 0
|
5月前
|
JavaScript 前端开发 API
ElementUI--数据表格增删改查与表单验证
ElementUI--数据表格增删改查与表单验证
30 0
|
6月前
|
前端开发 JavaScript API
elementUI中<el-select>下拉框选项过多的页面优化方案——多列选择
elementUI中<el-select>下拉框选项过多的页面优化方案——多列选择
205 0
|
7月前
|
JSON 前端开发 Java
前端框架Layui实现动态表格效果用户管理实例(对表格进行CRUD操作-附源码)(二)
前端框架Layui实现动态表格效果用户管理实例(对表格进行CRUD操作-附源码)(二)
68 0
|
7月前
|
JavaScript
【项目经验】elementui--table表格自定义表头及bug
elementui--table表格自定义表头及bug(避坑)
159 0
|
8月前
|
JavaScript
VUE系列——使用ElementUI的table表格重构穿梭框
VUE系列——使用ElementUI的table表格重构穿梭框