Table中的Render用法——iView(一)

第一次用iView,记录一下用法,方便日后查找
此篇为基础用法(2020更)

准备

在github上拉取了iView的推荐工程,搭建了一个小项目。
https://github.com/iview/iview-project

基础用法(2020更)

整体展示

在这里插入图片描述

<!-- iView Table用法 -->
<i-table border :columns="columns2" :data="data3"></i-table>

转码

对于需要转码的字段,可在render函数中通过switch进行选择。
{
   title: '省份',
   key: 'province',
   width: 100,
   render: (h, params) => {
	switch(params.row.province) {
		case '0':
		      return h('span','北京市');
		      break;
		case '1':
		      return h('span','杭州市');
		      break;
		case '2':
		      return h('span','上海市');
		      break;
		}
	},
   }

筛选

在表头进行筛选。
filters: [{
	    label: '北京',
	    value: '0'
	},
	{
	    label: '杭州',
	    value: '1'
	},
	{
	    label: '上海',
	    value: '2'
	}],
	filterMultiple: false, //是否多选
	filterMethod (value, row) {
		if (value === '0') {
		    return row.province === '0';
		} else if (value === '1') {
		    return row.province === '1';
		}else if (value === '2') {
		    return row.province === '2';
		}
	},

在这里插入图片描述

合并显示两个字段

render: (h, params) => {
	return h('span',params.row.city + params.row.detail)
}

文本超出部分…,并用Tooltip显示

render: (h, params) => {
     return h('div',[
           h('Tooltip',{
                 props: {
                       placement: "top",
                       transfer: true,
                 }
           },[
                 params.row.desc.substring(0,12)+"...",
                 h('span',{
                       slot: 'content',
                       style:{
                             width: '200px',
                             overflow: 'hidden',
                             textOverflow: 'ellipsis',
                             whiteSpace: 'normal'
                       }
                 },params.row.desc)
           ])
     ])
}

在这里插入图片描述

显示按钮,并定义点击事件

render:(h, params) =>{
     return h('span',[
           h('Button',{
                 props: {
                       type: 'primary',
                       size: 'small'
                 },
                 on: {
                       click: () => {
                             this.$Notice.open({
                                   title: 'render',
                                   desc: 'renderButton'
                             })
                       }
                 }
           },'查看')
     ])
}

对按钮进行样式修改,通过style

h('Button',{
      props: {
            type: 'primary',
            size: 'small'
      },
      attrs: {
            title: '删除'
      },
      style: {
            marginLeft: '2px',
            backgroundColor: 'red',
            borderColor: 'red'
      },
      on: {
            click: () => {
                  this.$Notice.open({
                        title: 'render',
                        desc: 'renderButton'
                  })
            }
      }
},'删除')

对按钮进行样式修改,通过class

.show-button{
    width: 60px;
    height: 40px;
    padding: 10px;
    background-color: aquamarine;
    color:azure
}
return h('div',[
    h('span',{
          class: "show-button",
          on: {
                click: () => {
                      this.$Notice.open({
                            title: 'render',
                            desc: 'renderButton'
                      })
                }
          }
    },'查看')
])

显示switch开关

return h('div',[
	h('i-switch',{
        style: {marginLeft: '20px'},
        props: {
              value: params.row.switch,
              size: 'middle'
        },
        on :{
              'on-change': (val) => {
                    this.$Notice.open({
                          title: 'switch',
                          desc: 'switch'
                    })
              },
        },
        [
	         h('span', {
	               slot: 'open',
	               domProps: {
	                     innerHTML: 'ON'
	               }
	         }),
	         h('span', {
	               slot: 'off',
	               domProps: {
	                     innerHTML: 'OFF'
	               }
	         })
	   ])
  },
])
table.render是Layui前端框架,用来渲染表格数据的一个函数。通过调用table.render方法,可以实现数据的异步加载、分页、排序、过滤等功能。当您提到“按上键到最后一个”的时候,可能是指在表格实现快速滚动到当前可视区域的最后一行的功能。 要实现这一功能,可以通过监听滚动事件,并计算当前视窗的最后一行来实现。在Layui,通常需要使用JavaScript来添加相应的滚动事件监听器。以下是一个简单的示例代码: ```javascript // 假设table.render已经完成了表格的渲染 var table = $('#yourTableId').table({ /* ... */ }); // 绑定滚动事件 $('#yourTableId').on('scroll', function() { // 获取滚动条的垂直位置 var scrollTop = $(this).scrollTop(); var scrollHeight = $(this)[0].scrollHeight; // 整个表格的高度 var clientHeight = $(this).innerHeight(); // 可视区域的高度 // 计算当前视窗的最后一行 var lastRow = Math.ceil(scrollTop / clientHeight); // 读取表格最后一行的行号 var totalRow = table.getCount(); // 获取表格的总行数 // 当前视窗的最后一行超过了表格的总行数,则滚动到最后一个 if (lastRow >= totalRow) { $(this).scrollTop(scrollHeight - clientHeight); } }); // 为了确保表格可以滚动,需要设置表格高度或其父容器的高度 // 假设使用一个div作为表格的外层容器 <div id="yourTableId" style="height: 300px; overflow: auto;"> <table> <!-- 表格内容 --> </table> </div> ``` 在上面的代码,我们为表格绑定了一个滚动事件监听器,当用户滚动表格时,计算当前应该显示的最后一行,并确保它不会超出表格的总行数。如果超过了,我们将滚动条直接滚动到表格的底部。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值