Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Vuetify datatable Rows per page is not working

Tags:

vuetify.js

Here is the problem and how this shows inside componentI imported the datatable component from Vuetify and it is working fine except for the Rows per page part. It doesn't open a list that should contain [5, 10, 20] to re-organize the datatable.

update in the photo this is the error, the list of options showing in another place.

I reviewed my code and there is nothing about it. So I deleted the whole component and replaced it with the basic example available in the docs but still the same problem.

<template>
<v-data-table
    :headers="headers"
    :items="desserts"
    class="elevation-1"
  >
    <template v-slot:items="props">
      <td>{{ props.item.name }}</td>
      <td class="text-xs-right">{{ props.item.calories }}</td>
      <td class="text-xs-right">{{ props.item.fat }}</td>
      <td class="text-xs-right">{{ props.item.carbs }}</td>
      <td class="text-xs-right">{{ props.item.protein }}</td>
      <td class="text-xs-right">{{ props.item.iron }}</td>
    </template>
  </v-data-table>
</template>

and the code script part is

<script>
  export default {
    data () {
      return {
        headers: [
          {
            text: 'Dessert (100g serving)',
            align: 'left',
            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%'
          },
          {
            name: 'Cupcake',
            calories: 305,
            fat: 3.7,
            carbs: 67,
            protein: 4.3,
            iron: '8%'
          },
          {
            name: 'Gingerbread',
            calories: 356,
            fat: 16.0,
            carbs: 49,
            protein: 3.9,
            iron: '16%'
          },
          {
            name: 'Jelly bean',
            calories: 375,
            fat: 0.0,
            carbs: 94,
            protein: 0.0,
            iron: '0%'
          },
          {
            name: 'Lollipop',
            calories: 392,
            fat: 0.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.0,
            carbs: 51,
            protein: 4.9,
            iron: '22%'
          },
          {
            name: 'KitKat',
            calories: 518,
            fat: 26.0,
            carbs: 65,
            protein: 7,
            iron: '6%'
          }
        ]
      }
    }
  }
</script>

What should I re-check ?

like image 511
tarek hassan Avatar asked Dec 18 '22 17:12

tarek hassan


1 Answers

This behaviour happens, when the template isn't within a <v-app> element. In the main app.vue, from which one calls the component, which uses<v-data-table>, encapsule with <v-app> and <v-content>:

<template>
  <div id="app">
    <v-app>
      <v-content>
        <myComponent></myComponent>
      </v-content>
    </v-app>
  </div>
</template>

Compare to a vuetify tutorial, e.g.a random tutorial.

It seems the dropdowns css class position (top and left) is relative to the pagination element if <v-app> is missing and relative to the 0-position (upper left) of the vuetify table, if the data table is correctly encapsuled.

like image 198
iso13485 Avatar answered Jan 03 '23 22:01

iso13485