亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

element-ui中table組件的toggleRowSelection()方法使用

 更新時間:2024年03月11日 10:45:14   作者:helloworld?。。??  
這篇文章主要介紹了element-ui中table組件的toggleRowSelection()方法使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

element-ui中table組件的toggleRowSelection()方法

最近,在做關(guān)于翻頁導(dǎo)出功能時,遇到需要將前面勾選過的選項進(jìn)行回顯的情況,因為table組件在每次翻頁的時候,都會清空上一頁勾選的選項,在切換回前一頁時,勾選過的選項不會保存。因此需要借助toggleRowSelection()方法設(shè)置勾選項。

toggleRowSelection()需要頁面渲染完畢之后才有效,因此需要放在this.$nextTick中,如果只有一頁數(shù)據(jù),這樣就可以了,但是在有多頁數(shù)據(jù)的情況下,每次翻頁就會請求數(shù)據(jù),進(jìn)行數(shù)據(jù)更新,因此this.$nextTick需要放在updated回調(diào)中,等數(shù)據(jù)更新和頁面渲染都完成時,才有效。如下所示。

updated() {
  this.$nextTick(() => {
    this.tableData.forEach(outerItem => {
      this.selectRows[this.page.current - 1] && this.selectRows[this.page.current - 1].forEach(item => {
        if(outerItem.d == item.d) {
          this.$refs.caseTable.toggleRowSelection(outerItem,true);
        }
      })
    })
  })
}

還有一個問題,如上所示,tableData中是傳入到table組件中的數(shù)據(jù),而selectRows是我保存的勾選的數(shù)據(jù),按理說數(shù)據(jù)的格式完全一樣,但是我向toggleRowSelection傳遞參數(shù)時,只能傳遞outerItem,也就是傳入table組件的數(shù)據(jù),傳入item則無效。具體原因還不是太清楚,但我想應(yīng)該是因為兩個引用類型的地址不同引起的。

element-ui中table默認(rèn)選中toggleRowSelection

一.toggleRowSelection

toggleRowSelection(row, selected)接受兩個參數(shù),row傳遞被勾選行的數(shù)據(jù),selected設(shè)置是否選中

注意:調(diào)用toggleRowSelection這個方法 需要獲取真實dom 所以需要注冊 ref 來引用它 

二.操作

(一).默認(rèn)選中

1.當(dāng)數(shù)據(jù)源固定在table的

<script>
export default {   
	mounted() {
    	this.$refs.multipleTable.toggleRowSelection(this.tableData3[2],true);
	}
}
</script>
 

(二).點擊tr選中

1.在table中設(shè)置 @row-click="handleCurrentChange"

row-click  點擊行事件

<template>
	<el-table :data="tableData3"  ref="multipleTable" @row-click="handleCurrentChange">
	</el-table>
</template>
<script>
export default {   
	methods: {
		handleCurrentChange(row, event, column){
			this.$refs.multipleTable.toggleRowSelection(row,true);//點擊選中
		}
    }
}
</script>

(三).獲取選中的值

1.設(shè)置table 中@selection-change="selsChange"

2.data 中設(shè)置sels:[]

<template>
	<el-table :data="tableData3"  ref="multipleTable" @row-click="handleCurrentChange" @selection-change="selsChange">
	</el-table>
</template>
<script>
export default {   
	methods: {
		selsChange( val){
			this.sels=val;
			console.log(this.sels)
		}
    }
}
</script>

三.案例

1.table tr 點擊 復(fù)選框選中  再次點擊 復(fù)選框取消選中

①設(shè)置一個全局函數(shù)

exports.install = function (Vue, options) {
    //刪除數(shù)組 指定的元素
    Vue.prototype.removeByValue=function(arr, val){
        for(var i=0; i<arr.length; i++) {
            if(arr[i] == val) {
                arr.splice(i, 1);
                break;
            }
        }
    };
};

②table.vue

<template>
	<el-table :data="tableData3"  ref="multipleTable" @row-click="handleCurrentChange" @selection-change="selsChange">
		<el-table-column type="selection" width="55" ></el-table-column>
		<el-table-column type="index" label="序號" width="60"></el-table-column>
		<el-table-column prop="sex" label="性別" width="100" :formatter="formatSex"></el-table-column>
		<el-table-column prop="date" label="日期"></el-table-column>
		<el-table-column prop="name" label="姓名"></el-table-column>
		<el-table-column prop="address" label="地址"></el-table-column>
	</el-table>
</template>
<script>
export default {   
	data() {
		return {
	        tableData3: [{
	        	id:'1',
				date: '2016-05-03',
				name: '嘎哈和',
				address: '上海市普陀區(qū)金沙江路 1518 弄',
				sex:'1'
	        }, {
	        	id:'2',
				date: '2016-05-02',
				name: '王小虎',
				address: '上海市普陀區(qū)金沙江路 1518 弄',
				sex:'0'
	        }, {
	        	id:'3',
				date: '2016-05-02',
				name: '莫默模',
				address: '上海市普陀區(qū)金沙江路 1518 弄',
				sex:'-1'
	        }],
	        arrID:[],
 
	    }
	},
	methods: {
		formatSex: function (row, column, cellValue, index) {
			return row.sex == 1 ? '男' : row.sex == 0 ? '女' : '未知';
		},
		// 點擊事情
        handleCurrentChange(row, event, column){  
        	var same=false;
            if(this.arrID.length > 0){
				for(var i=0; i<this.arrID.length ;i++){
					if(this.arrID[i]==row.id){
						same=true;
						this.removeByValue(this.arrID, row.id);
						break;
					}
				}
				if(same==true){
	            	this.$refs.multipleTable.toggleRowSelection(row,false);
	            }else{
	            	this.$refs.multipleTable.toggleRowSelection(row,true);
	            	this.arrID.push(row.id);
	            }
            }else{
            	this.$refs.multipleTable.toggleRowSelection(row,true);
        		this.arrID.push(row.id);
            }
        },
        selsChange(val){
        	var valId=[];
        	for(var i=0;i<val.length;i++){
        		var arrIDsame=false;
        		valId.push(val[i].id);
        	}
        	this.arrID=valId;
        }
    },
    mounted() {  
        this.$refs.multipleTable.toggleRowSelection(this.tableData3[2],true);//默認(rèn)選中  
    }
}
</script>
<style>
</style>

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue-admin-template模板添加tagsview的實現(xiàn)

    vue-admin-template模板添加tagsview的實現(xiàn)

    本文主要介紹了vue-admin-template模板添加tagsview的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • vue中transition組件在項目中運用小結(jié)

    vue中transition組件在項目中運用小結(jié)

    這篇文章主要介紹了vue中transition組件在項目中運用,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • 詳解uniapp的生命周期

    詳解uniapp的生命周期

    這篇文章主要介紹了uniapp的生命周期,應(yīng)用生命周期是指應(yīng)用程序從啟動到關(guān)閉的整個過程,包括應(yīng)用程序的啟動、前后臺切換、退出等,需要的朋友可以參考下
    2023-04-04
  • 解決vue中使用swiper 插件出錯的問題

    解決vue中使用swiper 插件出錯的問題

    這篇文章主要介紹了vue中使用swiper 插件出錯問題及解決辦法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • Vue.js自定義指令的用法與實例解析

    Vue.js自定義指令的用法與實例解析

    自定義指令是用來操作DOM的。自定義指令就是一種有效的補(bǔ)充和擴(kuò)展,不僅可用于定義任何的DOM操作,并且是可復(fù)用的。這篇文章主要介紹了Vue.js自定義指令的用法與實例解析,一起看看吧
    2017-01-01
  • Vue3使用ref和reactive管理狀態(tài)的代碼示例

    Vue3使用ref和reactive管理狀態(tài)的代碼示例

    ref 和 reactive 是 Composition API 中用來聲明響應(yīng)式數(shù)據(jù)的兩個核心函數(shù),在 Vue 3 中,使用 setup 語法糖可以更簡潔地使用這些功能,本文將探討如何使用 ref 和 reactive 來管理狀態(tài),并解釋它們之間的區(qū)別,需要的朋友可以參考下
    2024-09-09
  • Vue3.2?中新出的Expose用法一覽

    Vue3.2?中新出的Expose用法一覽

    這篇文章主要介紹了Vue3.2?中新出的?Expose?是做啥用的,新的expose方法是非常直觀的,而且很容易在我們的組件中實現(xiàn),本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • Vue-cli3執(zhí)行serve和build命令時nodejs內(nèi)存溢出問題及解決

    Vue-cli3執(zhí)行serve和build命令時nodejs內(nèi)存溢出問題及解決

    這篇文章主要介紹了Vue-cli3執(zhí)行serve和build命令時nodejs內(nèi)存溢出問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 在Vue中使用Viser說明(基于AntV-G2可視化引擎)

    在Vue中使用Viser說明(基于AntV-G2可視化引擎)

    這篇文章主要介紹了在Vue中使用Viser說明(基于AntV-G2可視化引擎),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • 關(guān)于Vue-cli3煩人的eslint問題

    關(guān)于Vue-cli3煩人的eslint問題

    這篇文章主要介紹了關(guān)于Vue-cli3煩人的eslint問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09

最新評論