Advertisement

Table数据表格

阅读量:

Table****数据表格

Table数据表格是layui框架中最核心的模板之一,它用于对表格进行一些功能和动态化数据操作,支持固定表头、固定行、固定列,支持多级表头,支持单元格的自定义模板,支持对表格重载等一系列功能。

三种初始化渲染方式

  1. 方法渲染:用JS方法的配置完成渲染,无需写过多的HTML,在JS中指定原始元素,再设定各项参数
  2. 自动渲染:HTML配置,自动渲染,无需写过多的JS,可专注于HTML表头部分
  3. 转换静态表格:转化一段已有的表格数据,无需配置数据1接口,在JS中指定表格元素,并简单地给表头加上自定义属性

基础参数

table模块所支持的全部参数,对几个常用的重点参数进行详细说明:

elem:为String/DOM类型,指定原始table容器的选择器或DOM,方法渲染方式必填

cols:为Array类型,设置表头。值是一个二维数组。方法渲染方式不必填

url:异步数据接口相关参数。url参数为必填项

data:为Array类型,直接赋值数据。既适用于只展示一页数据,也适用于对一段已知数据进行多页展示

limit:Number类型,每页显示的条数(默认为10).值必须对应limits参数的选项。优先级低于page参数中的limit参数。

limits:Array类型,每页条数的选择项,默认:[10,20,30,40,50,60,70,80,90]。优先级低于page参数中的limits参数。

title:String类型,定义table的大标题(在文件导出等地方会用到)

id:Sring设定容器唯一id。id是对表格的数据操作方法上是必要的传递条件,它是表格容器的索引。从layui2.2.0开始,该参数也可以自动从

中的id参数中获取

skin:设定表格各种外观、尺寸

templet-自定义列模板

类型:String,没有默认值

在默认情况下,单元格的内容是完全按照数据接口返回的content原样输出的

templet提供了三种使用方式:

方式一:绑定模板选择器,如下所示:

table.render({

cols: [[

{field:'title', title: '文章标题', width: 200, templet: '#titleTpl'} //这里的templet值是模板元素的选择器

,{field:'id', title:'ID', width:100}

]]

});

方式二:函数转义。自layui2.2.5开始,templet开始支持函数形式,函数返回一个参数d,包含接口返回的所有字段和数据。如下所示:

table.render({

cols: [[

{field:'title', title: '文章标题', width: 200

,templet: function(d){

return 'ID:'+ d.id +',标题:'+ d.title +''

}

}

,{field:'id', title:'ID', width:100}

]]

});

方式三:直接赋值模板字符。事实上,templet也可以直接是一段html内容,如:

templet: '

'

注意:这里一定要被一层

包裹,否则无法读取到模板

表格重载

很多时候,需要对表格进行重载。比如数据全局搜索。以下方法可以轻松实现这类需求(可任选一种)。

语法:table.reload(ID,options),说明:参数ID即为基础参数id对应的值,参数options即为各项基础参数

语法:tableIns.reload(options),说明:对象tableIns来源于table.render()方法的实例,参数options即为各项基础参数

示例1:自动化渲染的重载

【HTML】

……

【JS】

table.reload('idTest', {

url: '/api/table/search'

,where: {} //设定异步数据接口的额外参数

//,height: 300

});

示例2:方法级渲染的重载

//所获得的 tableIns 即为当前容器的实例

var tableIns = table.render({

elem: '#id'

, cols: [] //设置表头

, url: '/api/data' //设置异步接口

, id: 'idTest'

});

//这里以搜索为例

tableIns.reload({

where: { //设定异步数据接口的额外参数,任意设

aaaaaa: 'xxx'

, bbb: 'yyy'

//…

}

, page: {

curr: 1 //重新从第 1 页开始

}

});

//上述方法等价于

table.reload('idTest', {

where: { //设定异步数据接口的额外参数,任意设

aaaaaa: 'xxx'

, bbb: 'yyy'

//…

}

, page: {

curr: 1 //重新从第 1 页开始

}

});

全部评论 (0)

还没有任何评论哟~