Est-il possible d'aligner à gauche les lignes par pages et la navigation de page et de mettre un bouton à sa place dans la même ligne?
3 Réponses :
La ligne des actions est alignée à droite par défaut. Il existe cependant un moyen de réaliser ce que vous voulez. Vous pouvez utiliser la pagination personnalisée et masquer la pagination actuelle:
<v-layout row justify-center> <v-pagination v-model="pagination.page" :length="pages"></v-pagination> <v-btn class="test">test</v-btn> </v-layout>
Et ajouter ceci après la table de données:
<v-data-table :headers="headers" :items="desserts" :search="search" hide-actions :pagination.sync="pagination" >
En savoir plus ici .
Voici un Codepen en action.
Est-il possible d'utiliser encore des éléments de pagination de style vuetify? ou devrais-je les recréer pour qu'ils se ressemblent?
Vous pouvez modifier les icônes en utilisant prev-icon
et next-icon
et leur couleur. En savoir plus ici
J'ai trouvé que le moyen le plus simple est d'ajouter le bouton à un emplacement de table de données que vous utilisez et de simplement positionner le bouton par rapport à la table.
<v-data-table style="position: relative;"> <template slot="footer"> <v-btn style="position: absolute; left: 10px; bottom: 10px;"> test </v-btn> </template> </v-data-table>
Manière la plus simple par CSS:
modèle dans votre datatable:
<link href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900|Material+Icons" rel="stylesheet"> <link href="https://cdn.jsdelivr.net/npm/vuetify@1.x/dist/vuetify.min.css" rel="stylesheet"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui"> <script src="https://cdn.jsdelivr.net/npm/vue@2.x/dist/vue.js"></script> <script src="https://cdn.jsdelivr.net/npm/vuetify@1.x/dist/vuetify.js"></script> <div id="app"> <v-app :dark="dark"> <v-content> <v-data-table :headers="headers" :items="desserts" class="my-grid"> <template v-slot:items="{item}"> <tr> <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> <template v-slot:actions-prepend> <v-btn @click="onClick"> Switch mode </v-btn> </template> </v-data-table> </v-content> </v-app> </div>
CSS:
.my-grid .v-datatable__actions > div:first-child { flex: 1; }
Extrait de travail :
new Vue({ el: '#app', methods: { onClick() { this.dark = !this.dark; } }, data: { dark: true, headers: [{ text: 'Dessert (100g serving)', 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%' } ] } })
.my-grid .v-datatable__actions > div:first-child { flex: 1; }
<template v-slot:actions-prepend> <v-btn> Click me ! </v-btn> </template>
Quelle version de Vuetify avez-vous utilisée pour cela? Je ne vois pas d'espace pour actions-prepend
dans les documents les plus récents.
@totalhack cela ne fonctionne que pour les versions précédentes, pas sûr pour les réels, voir dans l'extrait de jointure pour la version exacte
Vous voulez le bouton à gauche ou à droite? La photo le montre à gauche mais d'après votre explication, il semble que vous le vouliez à droite
Oui, je voulais juste montrer l'idée de ce que je cherchais. J'ai pensé que je pouvais trouver l'alignement.