【问题标题】:How do I integrate checkboxes with v-data-table - Vuetify如何将复选框与 v-data-table 集成 - Vuetify
【发布时间】:2020-09-13 17:09:14
【问题描述】:

我有一个简单的 V 数据表。我正在尝试为表格中的每一行添加复选框。

我的桌子是这样的。

<v-data-table :headers="headers" :items="rows"item-key="name" :search="search">
    <template v-slot:item="props">
        <tr >
            <td v-for="(prop, key) in props.item" :key="key" @click="onClickItem(key, props.item[key])">
                {{props.item[key]}}     
            </td>
            <td>
                <!-- Some icons for editing rows -->        
            </td>
        </tr>
    </template> 
    <template v-slot:top>
         <!-- A dialog box for editing rows -->
    </template>
</v-data-table>

我尝试使用official guide 来执行此操作,但是我的所有行都向右移动了 1 个位置,即使我在标题上也有多行,我也只看到一个复选框! 我应该如何进行?

【问题讨论】:

  • 你用复选框发布你的代码吗?
  • 你应该给'show-select'作为道具
  • @Rikkas 我对 VueJs 和 Vuetify 有点陌生。您能否解释一下我如何将“show-select”作为道具传递?
  • @HansFelixRamos 我只是按照文档进行操作。刚刚在v-data-table 标签中添加了“show-select”
  • 它应该可以工作吗?

标签: vue.js vuetify.js


【解决方案1】:

这是类似于官方文档的工作代码笔 https://codepen.io/manojkmishra/pen/MWadELG

另一种方式 https://codepen.io/manojkmishra/pen/bGVyoaw

模板部分:

 <div id="app">
  <v-app id="inspire">
  <h5>Selected: {{selected}}</h5>
  <v-data-table
  v-model="selected"
  :headers="headers"
  :items="desserts"
  item-key="name"
  show-select
  class="elevation-1"
  >
  </v-data-table>
 </v-app>
</div>

脚本部分:

new Vue({
el: '#app',
vuetify: new Vuetify(),
data () {
return {
  singleSelect: false,
  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: [
    {
      name: 'Frozen Yogurt',
      calories: 159,
      fat: 6.0,
      carbs: 24,
      protein: 4.0,
      iron: '1%',
    },
    {
      name: 'Ice cream sandwich',
      calories: 237,
      fat: 9.0,
      carbs: 37,
      protein: 4.3,
      iron: '1%',
    },
    {
      name: 'Eclair',
      calories: 262,
      fat: 16.0,
      carbs: 23,
      protein: 6.0,
      iron: '7%',
    },
  ],
 }
},
})

【讨论】:

  • 嗨 Manoj,感谢您的回答。正如您在问题部分中看到的那样,我有一张不同的桌子。我正在使用道具。
  • 谢谢萨米尔,现在明白了。此外,如果您使用 ( {{ props.item[key]}} ) 来跟踪点击的项目,你可以使用 ,它会返回对象可以根据所需列值过滤的行数据。为了编辑行图标,可以添加单独的模板。这样,复选框不会中断,v-data-table 功能也将更加完整。
  • 如何将其设置为该示例中选中的默认值??
猜你喜欢
  • 2020-12-13
  • 2019-12-22
  • 2021-08-30
  • 2020-02-26
  • 2019-11-10
  • 2019-11-19
  • 1970-01-01
  • 1970-01-01
  • 2019-12-19
相关资源
最近更新 更多