最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Vuetify Data Table Conditional Column Rendering - Stack Overflow

programmeradmin1浏览0评论

How do i show or hide my vuetify data table columns depending if one of my values are either true or false?

Let's say i have the following basic data table and data, i want to be able to hide any column that i wish. Like i don't want to see anything related to Carbs or Protein.

<template>
    <v-content>
        <v-data-table
          :headers="headers"
          :items="desserts"
          :items-per-page="5"
          class="elevation-1"
        >
        </v-data-table>
    </v-content>
</template>
<script>
    export default {
    name: 'someTable',
    puted: {
    },
    ponents: {
        //
    },

    data: () => ({
        test: true,
        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' }
            ],
        desserts: [
          {
            name: 'Frozen Yogurt',
            calories: 159,
            fat: 6.0,
            carbs: 24,
            protein: 4.0
          },
          {
            name: 'Ice cream sandwich',
            calories: 237,
            fat: 9.0,
            carbs: 37,
            protein: 4.3
          }

        ]
    })
    };
</script>

How do i show or hide my vuetify data table columns depending if one of my values are either true or false?

Let's say i have the following basic data table and data, i want to be able to hide any column that i wish. Like i don't want to see anything related to Carbs or Protein.

<template>
    <v-content>
        <v-data-table
          :headers="headers"
          :items="desserts"
          :items-per-page="5"
          class="elevation-1"
        >
        </v-data-table>
    </v-content>
</template>
<script>
    export default {
    name: 'someTable',
    puted: {
    },
    ponents: {
        //
    },

    data: () => ({
        test: true,
        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' }
            ],
        desserts: [
          {
            name: 'Frozen Yogurt',
            calories: 159,
            fat: 6.0,
            carbs: 24,
            protein: 4.0
          },
          {
            name: 'Ice cream sandwich',
            calories: 237,
            fat: 9.0,
            carbs: 37,
            protein: 4.3
          }

        ]
    })
    };
</script>
Share asked Mar 19, 2020 at 13:23 Otorrinolaringologista -manOtorrinolaringologista -man 1,1577 gold badges32 silver badges56 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 7

Use a puted property for your headers:

<template>
    <v-content>
        <v-data-table
          :headers="_headers"
          :items="desserts"
          :items-per-page="5"
          class="elevation-1"
        >
        </v-data-table>
    </v-content>
</template>
<script>
    export default {
    name: 'someTable',
    puted: {
    },
    ponents: {
        //
    },
    data: () => ({
        test: true,
        headers: [
              {
                text: 'Dessert (100g serving)',
                align: 'start',
                sortable: false,
                value: 'name',
                show: true 
              },
              { text: 'Calories', value: 'calories', show:true },
              { text: 'Fat (g)', value: 'fat', show:true },
              { text: 'Carbs (g)', value: 'carbs', show:false  },
              { text: 'Protein (g)', value: 'protein', show:false  }
            ],
        desserts: [
          {
            name: 'Frozen Yogurt',
            calories: 159,
            fat: 6.0,
            carbs: 24,
            protein: 4.0
          },
          {
            name: 'Ice cream sandwich',
            calories: 237,
            fat: 9.0,
            carbs: 37,
            protein: 4.3
          }

        ]
    }),
puted : {
   _headers () {
   return this.headers.filter(x=>x.show)
}
}

    };
</script>
发布评论

评论列表(0)

  1. 暂无评论