【问题标题】:How to show all items in Vuetify Data Table instead of 10 rows only?如何在 Vuetify 数据表中显示所有项目而不是仅显示 10 行?
【发布时间】:2020-07-19 05:34:31
【问题描述】:

我正在使用来自 Vuetify 的 data table

<v-data-table
  :ref="`sortableTable${index}`"
  class="items-table-container"
  :headers="headers"
  :items="category.items"
  hide-default-footer>

    ...custom rows

</v-data-table>

我注意到在表格中添加新项目时,它没有出现。我验证了我传递的项目有 11 个项目,但是表格最多只显示 10 个。

当我查看桌子周围的包装纸时,我注意到它有:

overflow-x: auto;
overflow-y: hidden;

但是,由于某种原因,我无法覆盖它。我尝试添加 height 属性,但似乎没有任何效果。

我怎样才能给表格一个自动高度,以便无论表格中有多少行它都会扩展?

【问题讨论】:

  • 可以通过值“-1”将默认设置为“全部”。

标签: css vue.js vuetify.js


【解决方案1】:

出现此问题是因为您已使用 hide-default-footer 删除了默认页脚,但仍启用了分页。分页默认设置为每行仅显示 10 个项目。您可以通过简单地添加 disable-pagination 选项轻松解决此问题,这会完全禁用分页,然后您还可以看到第 10 个索引之后的所有项目。

<v-data-table
  :ref="`sortableTable${index}`"
  class="items-table-container"
  :headers="headers"
  :items="category.items"
  hide-default-footer
  disable-pagination>

演示:

new Vue({
  el: '#app',
  vuetify: new Vuetify(),
  data() {
    return {
      headers: [{text:"Dessert (100g serving)",align:"start",sortable:!1,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: headers=[{name:"Frozen Yogurt",calories:159,fat:6,carbs:24,protein:4,iron:"1%"},{name:"Ice cream sandwich",calories:237,fat:9,carbs:37,protein:4.3,iron:"1%"},{name:"Eclair",calories:262,fat:16,carbs:23,protein:6,iron:"7%"},{name:"Cupcake",calories:305,fat:3.7,carbs:67,protein:4.3,iron:"8%"},{name:"Gingerbread",calories:356,fat:16,carbs:49,protein:3.9,iron:"16%"},{name:"Jelly bean",calories:375,fat:0,carbs:94,protein:0,iron:"0%"},{name:"Lollipop",calories:392,fat:.2,carbs:98,protein:0,iron:"2%"},{name:"Honeycomb",calories:408,fat:3.2,carbs:87,protein:6.5,iron:"45%"},{name:"Donut",calories:452,fat:25,carbs:51,protein:4.9,iron:"22%"},{name:"KitKat",calories:518,fat:26,carbs:65,protein:7,iron:"6%"},{name:"Jelly bean",calories:375,fat:0,carbs:94,protein:0,iron:"0%"},{name:"Lollipop",calories:392,fat:.2,carbs:98,protein:0,iron:"2%"},
{name:"Ice cream sandwich",calories:237,fat:9,carbs:37,protein:4.3,iron:"1%"},{name:"Eclair",calories:262,fat:16,carbs:23,protein:6,iron:"7%"},{name:"Cupcake",calories:305,fat:3.7,carbs:67,protein:4.3,iron:"8%"},
{name:"Ice cream sandwich",calories:237,fat:9,carbs:37,protein:4.3,iron:"1%"},{name:"Eclair",calories:262,fat:16,carbs:23,protein:6,iron:"7%"},{name:"Cupcake",calories:305,fat:3.7,carbs:67,protein:4.3,iron:"8%"}],
    }
  },
})
<link href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/@mdi/font@4.x/css/materialdesignicons.min.css" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/vue@2.x/dist/vue.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.js"></script>

<div id="app">
  <v-app id="inspire">
    <v-container>
      <v-layout column>
        <v-data-table :headers="headers" 
          :items="desserts" 
          class="elevation-1" 
          hide-default-footer 
          disable-pagination
          dense>
        </v-data-table>
      </v-layout>
    </v-container>
  </v-app>
</div>

【讨论】:

  • 有人会认为hide-default-footer会自动变成paginationoff。天哪,如果我把页脚转成off ?,我为什么要它是on ?,这太疯狂了?...无论如何,谢谢?
【解决方案2】:

每页的默认项目数为 10。使用 -1 而不是 10。添加此行。

:items-per-page="-1"

【讨论】:

    猜你喜欢
    • 2017-12-29
    • 1970-01-01
    • 1970-01-01
    • 2018-09-02
    • 2012-04-07
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多