欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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);
        }
      })
    })
  })
}

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

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

一.toggleRowSelection

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

注意:調(diào)用toggleRowSelection這個(gè)方法 需要獲取真實(shí)dom 所以需要注冊(cè) ref 來(lái)引用它 

二.操作

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

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

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

(二).點(diǎn)擊tr選中

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

row-click  點(diǎn)擊行事件

<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);//點(diǎn)擊選中
		}
    }
}
</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 點(diǎn)擊 復(fù)選框選中  再次點(diǎn)擊 復(fù)選框取消選中

①設(shè)置一個(gè)全局函數(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="序號(hào)" 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 ? '女' : '未知';
		},
		// 點(diǎn)擊事情
        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é)

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

相關(guān)文章

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

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

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

    vue中transition組件在項(xiàng)目中運(yùn)用小結(jié)

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

    詳解uniapp的生命周期

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

    解決vue中使用swiper 插件出錯(cuò)的問(wèn)題

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論