Vuetify 数据表 select 全部禁用复选框
Vuetify datatable select all with disabled checkboxes
我在处理包含 select 行的数据表时遇到问题。我有禁用复选框的行,但 select 无论如何都会检查它们......
这是一个错误吗?
我做了一个代码笔:https://codepen.io/slayerbleast/pen/jOWjzWJ
如何修复select所有复选框只选中可用的复选框?
模板:
<v-content>
<v-data-table
v-model="selected"
:headers="headers"
:items="desserts"
item-key="name"
show-select
>
<template #item="{ item }">
<tr>
<td>
<v-checkbox
:disabled="item.calories > 250"
class="pa-0 ma-0"
:ripple="false"
v-model="selected"
:value="item"
hide-details
>
</v-checkbox>
</td>
<td>{{item.name}}</td>
<td>{{item.calories}}</td>
<td>{{item.fat}}</td>
<td>{{item.carbs}}</td>
<td>{{item.protein}}</td>
<td>{{item.iron}}</td>
</tr>
</template>
</v-data-table>
</v-content>
数据:
data: () => ({
selected: [],
headers: [
{
text: 'Dessert (100g serving)',
align: 'start',
sortable: false,
value: 'name',
},
{ text: 'Calories', value: 'calories' },
{ text: 'Fat (g)', value: 'fat' },
{ text: 'Carbs (g)', value: 'carbs' },
{ text: 'Protein (g)', value: 'protein' },
{ text: 'Iron (%)', value: 'iron' },
],
desserts: [...]
})
在 v-data-table
组件上,您可以设置 selectable-key
属性:
The property on each item that is used to determine if it is selectable or not
如果不指定,默认使用isSelectable
。您可以做的是创建一个计算 属性 以将此信息添加到您的 desserts
属性,如下所示:
computed: {
enrichedDesserts() {
return this.desserts.map(x => ({ ...x, isSelectable: x.calories <= 250 }));
}
}
然后把你的v-data-table
的items
属性改成:
<v-data-table :items="enrichedDesserts">
请参阅此 Codepen 以获取工作示例。
我在处理包含 select 行的数据表时遇到问题。我有禁用复选框的行,但 select 无论如何都会检查它们...... 这是一个错误吗?
我做了一个代码笔:https://codepen.io/slayerbleast/pen/jOWjzWJ
如何修复select所有复选框只选中可用的复选框?
模板:
<v-content>
<v-data-table
v-model="selected"
:headers="headers"
:items="desserts"
item-key="name"
show-select
>
<template #item="{ item }">
<tr>
<td>
<v-checkbox
:disabled="item.calories > 250"
class="pa-0 ma-0"
:ripple="false"
v-model="selected"
:value="item"
hide-details
>
</v-checkbox>
</td>
<td>{{item.name}}</td>
<td>{{item.calories}}</td>
<td>{{item.fat}}</td>
<td>{{item.carbs}}</td>
<td>{{item.protein}}</td>
<td>{{item.iron}}</td>
</tr>
</template>
</v-data-table>
</v-content>
数据:
data: () => ({
selected: [],
headers: [
{
text: 'Dessert (100g serving)',
align: 'start',
sortable: false,
value: 'name',
},
{ text: 'Calories', value: 'calories' },
{ text: 'Fat (g)', value: 'fat' },
{ text: 'Carbs (g)', value: 'carbs' },
{ text: 'Protein (g)', value: 'protein' },
{ text: 'Iron (%)', value: 'iron' },
],
desserts: [...]
})
在 v-data-table
组件上,您可以设置 selectable-key
属性:
The property on each item that is used to determine if it is selectable or not
如果不指定,默认使用isSelectable
。您可以做的是创建一个计算 属性 以将此信息添加到您的 desserts
属性,如下所示:
computed: {
enrichedDesserts() {
return this.desserts.map(x => ({ ...x, isSelectable: x.calories <= 250 }));
}
}
然后把你的v-data-table
的items
属性改成:
<v-data-table :items="enrichedDesserts">
请参阅此 Codepen 以获取工作示例。