Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

128
Vistas
Save the current page in v-data-table

I am using VueJS and Vuetify.

In v-data-table UI Component of vuetify, I want to save the current page that the current user is. For example, if the user is on the page 3 of 10, and he reloads the page, it will automatically go back to page 3 of 10. The current function is when the user reloads, it goes back to page 1 of 10.

footerOptions: {
    showFirstLastPage: true,
    showCurrentPage: true,
    itemsPerPageOptions: [20, 50, 100],
    itemsPerPageText: 'Data per Page',
},

getPagination(data) {
    sessionStorage.setItem('currentPage', data.page)
},
<v-data-table
    :headers="tableHeaders"
    :items="users"
    item-key="username"
    :loading="isLoading"
    @item-selected="itemSelect"
    @toggle-select-all="selectAll"
    @click:row="singleClick"
    @dblclick:row="doubleClick"
    @pagination="getPagination"
    :footer-props="footerOptions"
    show-select
    multi-sort
    dense>
</v-data-table>

Edit: I am already getting the current page and save it to session storage. Now, all I need to make that currentPage binded in the v-data-table. I tried to used the page prop of v-data-table but nothing happens. Still on page 1 even the currentPage is 2/3/4 and so on.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Here is what you should try:

  1. add :page prop on v-data-table to bind the page number to a data property pageNum.

  2. listen for update:page event which fires from v-data-table any time the table's page value changes, then call a method named pageChange

  3. in the pageChange method you should save the page value (passed in for you by the event) to localStorage: localStorage.setItem("page", newPage);

  4. on component creation, set pageNum to the value saved in localStorage: this.pageNum = localStorage.getItem("page");

simplified component code shown below:

<template>
  <div>
    <v-data-table
      :headers="tableHeaders"
      :items="users"
      :page="pageNum"
      @update:page="pageChange"
    >
    </v-data-table>
  </div>
</template>

<script>
export default {
  data() {
    return {
      pageNum: 1,
      tableHeaders: [],
      users: [],
    };
  },
  methods: {
    pageChange(newPage) {
      localStorage.setItem("page", newPage);
    },
  },
  created() {
    this.pageNum = localStorage.getItem("page");
  },
};
</script>

This will persist the page number value that v-data-table holds across page refreshes. You might want to think about clearing localStorage, localStorage.clear();, when the user navigates to a different page so if they come back to the page with v-data-table they are on page 1 again.

about 4 years ago · Juan Pablo Isaza Denunciar

0

I think the issue may be that your users is requested from backend? You should change the value of pageNum binded to v-data-table after users are got from remote.

<template>
  <v-data-table
    :items="users"
    :page="pageNum"
  >
  </v-data-table>
</template>

<script>
export default {
  data() {
    return {
      pageNum: 1,
      users: [],
    };
  },
  created() {
    getUsers().then((promise)=>{
      this.users = promise.data
      this.pageNum = sessionStorage.getItem('currentPage');
    })
  },
};
</script>

The key point is that you should set the value of pageNum when v-data-table already has multiple pages.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda