Vuetify изменить текст Строк на странице текста в нижнем колонтитуле v-data-table

Я работаю с v-data-таблицами Vuetify и....

Я хочу изменить этот текст:

ht tps://s tackru.com/images/6ce059bf1ee7c8520011bb2ba601ae6743a97a2f.png

Я добавил этот код, но он не работает:

ht tps://s tackru.com/images/f747c83c56af616596f93e5b28b33ac35e9d05aa.png

Благодарность!

7 ответов

Решение

Вы могли бы использовать 'items-per-page-text':'products per page':

  <v-data-table
      :headers="headers"
      :items="desserts"
      :items-per-page="5"
      item-key="name"
      class="elevation-1"
      :footer-props="{
        showFirstLastPage: true,
        firstIcon: 'mdi-arrow-collapse-left',
        lastIcon: 'mdi-arrow-collapse-right',
        prevIcon: 'mdi-minus',
        nextIcon: 'mdi-plus',
           'items-per-page-text':'products per page'
      }"
    ></v-data-table>

Пожалуйста, проверьте это example

Правильная опора для vuetify 2.X - количество элементов на странице:

<v-data-table
      :footer-props="{itemsPerPageText: 'Rows count'}"
></v-data-table>
      <template v-slot:[`footer.page-text`]="items"> 
  {{ items.pageStart }} - {{ items.pageStop }} de {{ items.itemsLength }}
</template>

Лучший способ, который я когда-либо находил, — языковая локализация в конфигурации Vuetify .

      import en from "vuetify/lib/locale/en";
    
export default new Vuetify({
  theme: {
    themes: {
      options: {/*...*/},
      light: {/*...*/},
      dark: {/*...*/},
    },
  },
  lang: {
    locales: { en },
      current: "en",
  },
});

Приведенная выше конфигурация приводит к тому, что все компоненты Vuetify(v-data-table) для языковой локализации.

Очень просто, по крайней мере в версии 3.3.9:

      <VDataTable :pageText="'{0}-{1} de {2}'" />

Из быстрого поиска документации vuetify я не могу найти текстовых строк на страницу, но элементов на текст страницы можно попробовать с элементами на текст страницы?

Чтобы изменить «{start}-{end} {total}, я сделал вот что: (другое решение не сработало)

      <template>
    <v-data-table
        v-model:page="page"
        v-model:items-per-page="itemsPerPage"
        :items-per-page-text="$t('table.itemsPerPage')"
        :page-text="pageText"
></v-data-table>
</template>

<script>
    // Inside component definition
    data() {
        return {
            items: [], // Array to show in the table
            page: 1,
            itemsPerPage: 5,
        }
    },
    computed: {
        pageText(): string {
            const total = this.items.length
            const startInterval = (this.page - 1)*this.itemsPerPage+1
            const endInterval = Math.min(this.page*this.itemsPerPage, total)
            const interval = `${startInterval}-${endInterval}`
            return this.$t('table.pageText', {interval: interval, total:total})
        }
    },
</script>

И в моих файлах перевода у меня есть

ru.json

      {
    "table": {
        "itemsPerPage": "Items per page",
        "pageText": "{interval} of {total}"
    }
}

fr.json

      {
    "table": {
        "itemsPerPage": "Items par page",
        "pageText": "{interval} de {total}"
    }
}
Другие вопросы по тегам