VUE-Table上绑定Input通过render实现双向绑定数据的示例

(编辑:jimmy 日期: 2024/11/20 浏览:2)

效果

VUE-Table上绑定Input通过render实现双向绑定数据的示例

HTML的Table

<Card>
     <div ref="print" >
      <Table  width="100%" height="500" size="small" :columns="columns7" :stripe="true" :data="data" border ></Table>
     </div>
</Card>

JS代码

<script>
  export default {
    data () {
      return {
        columns7: [
     {
      title: '序号',
      type: 'index',
      width: 200
     },
     {
      title: '新批次',
      width: 350,
      key:'newLots'
     },
     {
      title: '数量',
      key: 'numLots',
      width: 350,
      align: 'center',
      render: (h, params) => {
       var vm = this;
       return h('div', [

        h('Input', {
         props: {
         //将单元格的值给Input
         value:params.row.numLots,
         },
         on:{
            'on-change' (event) { 
             //值改变时 
             //将渲染后的值重新赋值给单元格值   
             params.row.numLots = event.target.value;
             vm.data[params.index] = params.row;
           } 
          }
        },)
       ]);
      }
     },
     {
      title: '操作',
      key: 'action',
      width: 350,
      align: 'center',
      render: (h, params) => {
       return h('div', [
        h('Button', {
         props: {
          type: 'error',
          size: 'default'
         },
         style: {
          marginRight: '5px'
         },
         on: {
          click: () => {
           this.openDeleteDialog(params.index)
          }
         }
        }, '删除')
       ]);
      }
     }

    ],
    data: [],
      }
    }
  }
</script>

这样就实现Input和Table单元格数据的双向绑定,取值是直接循环单元格来取值。

双向绑定数据的核心代码:

on:{
            'on-change' (event) { 
             //值改变时 
             //将渲染后的值重新赋值给单元格值   
             params.row.numLots = event.target.value;
             vm.data[params.index] = params.row;
           } 
          }

完成~

以上这篇VUE-Table上绑定Input通过render实现双向绑定数据的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。