admin管理员组文章数量:1318573
How could I show/hide a column in the BootstrapVue b-table
example below based on some event that changes the data model.
<template>
<button @click="showHideAge=!showHideAge">Show/Hide Age</button>
<b-table striped hover :items="items"></b-table>
</template>
<script>
const items = [
{ isActive: true, age: 40, first_name: 'Dickerson', last_name: 'Macdonald' },
{ isActive: false, age: 21, first_name: 'Larsen', last_name: 'Shaw' },
{ isActive: false, age: 89, first_name: 'Geneva', last_name: 'Wilson' },
{ isActive: true, age: 38, first_name: 'Jami', last_name: 'Carney' }
]
export default {
data () {
return {
items: items,
showHideAge: true
}
}
}
</script>
How could I show/hide a column in the BootstrapVue b-table
example below based on some event that changes the data model.
<template>
<button @click="showHideAge=!showHideAge">Show/Hide Age</button>
<b-table striped hover :items="items"></b-table>
</template>
<script>
const items = [
{ isActive: true, age: 40, first_name: 'Dickerson', last_name: 'Macdonald' },
{ isActive: false, age: 21, first_name: 'Larsen', last_name: 'Shaw' },
{ isActive: false, age: 89, first_name: 'Geneva', last_name: 'Wilson' },
{ isActive: true, age: 38, first_name: 'Jami', last_name: 'Carney' }
]
export default {
data () {
return {
items: items,
showHideAge: true
}
}
}
</script>
Share
Improve this question
edited Mar 31, 2020 at 12:09
Boussadjra Brahim
1
asked Sep 6, 2018 at 18:35
RichCRichC
7,87921 gold badges89 silver badges155 bronze badges
2 Answers
Reset to default 7You could use puted
property to get person details according to the state given by show/hide age
button
<template>
<div>
<button @click="showHideAge=!showHideAge">Show/Hide Age</button>
<b-table striped hover :items="persons"></b-table>
</div>
</template>
<script>
const items = [
{ isActive: true, age: 40, first_name: 'Dickerson', last_name: 'Macdonald' },
{ isActive: false, age: 21, first_name: 'Larsen', last_name: 'Shaw' },
{ isActive: false, age: 89, first_name: 'Geneva', last_name: 'Wilson' },
{ isActive: true, age: 38, first_name: 'Jami', last_name: 'Carney' }
]
export default {
data () {
return {
items: items,
showHideAge: true
}
},
puted: {
persons() {
if(this.showHideAge) {
return this.items
} else {
return items.map(x => ({
isActive: x.isActive,
first_name: x.first_name,
last_name: x.last_name
}))
}
}
}
}
</script>
I realise this is old, but the question is still valid. There are v-slots for headers and cells. You can use v-show on a div in the slot to show/hide both header and cells that the whole column is hidden.
`<template>
<div>
<button @click="showHideAge=!showHideAge">Show/Hide Age</button>
<b-table striped hover :items="items">
<template v-slot:cell(age)="row">
<div v-show="showHideAge">{{ row.item.age }}</div>
</template>
<template v-slot:head(age)="field">
<div v-show="showHideAge">{{ field.label }}</div>
</template>
</b-table>
</div>
</template>
<script>
const items = [
{ isActive: true, age: 40, first_name: 'Dickerson', last_name: 'Macdonald' },
{ isActive: false, age: 21, first_name: 'Larsen', last_name: 'Shaw' },
{ isActive: false, age: 89, first_name: 'Geneva', last_name: 'Wilson' },
{ isActive: true, age: 38, first_name: 'Jami', last_name: 'Carney' }
]
export default {
data () {
return {
items: items,
showHideAge: true
}
},
}
</script>`
本文标签: javascriptBootstrapvueHow to showhide a btable column programmaticallyStack Overflow
版权声明:本文标题:javascript - Bootstrap-vue - How to showhide a b-table column programmatically - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1742048852a2417954.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论