ElementUI中的el-table怎样实现每一列显示的是控件并能动态实现双向数据绑定

场景

要实现在ElementUI的表格中每一列展示的不是数据而是控件。效果如下

ElementUI中的el-table怎样实现每一列显示的是控件并能动态实现双向数据绑定_第1张图片

 

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

普通表格官方示例代码





要实现每列中使用的是控件的话可以使用

template来实现

          
            
          

这里是在此列使用下拉框控件作为模板

这里要添加slot-scope属性。添加这个属性可以在后面获取到某一行。

完整示例代码

        
          
          
          

          
            
          

          
            
          
          
            
          

          
            
          
        

在使用可控件之后再使用v-model进行双向数据绑定时就是动态数据绑定了。

这里首先设置el-table的数据源为 一个对象数组

          :data="bcglXiangXiList"

然后添加一个单选框

通过@selection-change="handleDetailSelectionChange"

设置其勾选事件

    //单选框选中数据
    handleDetailSelectionChange(selection) {
      if (selection.length > 1) {
        this.$refs.tb.clearSelection();
        this.$refs.tb.toggleRowSelection(selection.pop());
      } else {
        this.checkedDetail = selection;
      }
    },

实现单选并保存选中项。

前提要设置el-table的ref="tb"并且this.checkedDetail 需要提前声明

  data() {
    return {
      //选中的从表数据
      checkedDetail: [],

然后添加了一列序号用来保存行的索引号,通过设置el-table的

 :row-class-name= "rowClassName"

来实现

    rowClassName({ row, rowIndex }) {

      row.xh = rowIndex + 1;
    },

然后怎样对每个控件进行v-model数据绑定,通过

  v-model="bcglXiangXiList[scope.row.xh-1].ts"

使用scope.row可以获取到当前行对象。

通过scope.row.xh可以获取到当前行的xh字段属性,因为之前设置了xh为行的索引+1

而数组的索引从0开始,所以这里是xh-1

            

 

你可能感兴趣的:(ElementUI,elementUI)