Paginación en galeria

Para realizar la paginación en una galeria, utilizaremos 2 galerias, una galeria oculta que almacenara los registros y una galeria visible que mostrara los registros filtrados.

Crearemos una ventana y agregaremos un galeria vertical.


Cambiaremos el nombre a Galeria_ocultar y en el evento Visible deberá ser false.


Agregaremos un Textinput llamado TextInput_buscar que utilizaremos para realizar la búsqueda de algún dato en la galeria.

Agregaremos un Dropdown llamado Dropdown_paginas que utilizaremos para mostrar en la galeria la cantidad de registros a visualizar.

En el evento Item deberá de tener las cantidades de registros a mostrar.

Agregaremos un Label con el nombre Label_contar, que mostrara la cantidad de registros de la galeria oculta.

En el evento Text teclearemos: CountRows(Gallery_oculta.AllItems)

Tendremos una lista de SharePoint llamada  Lista_perifericos, que contiene los campos ID y Opciones_periferico.

En el evento Item de la Galeria_ocultar llamaremos la lista de  SharePoint con el filtro del TextInput_buscar.
If(TextInput_buscar.Text = "",
    Sort(Lista_perifericos,ID,SortOrder.Descending),
    Filter(Sort(Lista_perifericos,ID,SortOrder.Descending),
        StartsWith(Opciones_periferico,TextInput_buscar.Text)
    )
)


En el evento Default agregamos:
If(Dropdown_paginas.Selected.Value * v_Paginas >= CountRows(Self.AllItems),
Last(Self.AllItems))

En el evento OnVisible de la ventana agregamos la variable: Set(v_Paginas,1)

O la podemos agregar en el evento OnStart.

Llamamos los iconos para crear las flechas de avance y retroceso de los registros.

Agregaremos los siguientes nombres a los iconos
En el evento OnSelect de cada icono, agregar:

Icon_inicio:
Set(v_Paginas,
RoundUp(Value(Label_contar.Text) / Dropdown_paginas.Selected.Value ,0))

Icon_anterior:
If (v_Paginas < RoundUp(CountRows(Gallery_ocultar.AllItems)/
Dropdown_paginas.Selected.Value,0), Set(v_Paginas, v_Paginas + 1))


Label_informacion (evento Text):
"Página " & v_Paginas & " de " & If(Mod(CountRows(Gallery_ocultar.AllItems),100)= 0,
RoundUp(CountRows(Gallery_ocultar.AllItems)/Dropdown_paginas.Selected.Value,0) & " +páginas",
RoundUp(CountRows(Gallery_ocultar.AllItems)/Dropdown_paginas.Selected.Value,0) & " página(s)"
)

Icon_siguinte:
If (v_Paginas > 1, Set(v_Paginas, v_Paginas - 1))

Icon_final:
Set(v_Paginas,1)

Creamos una nueva galeria vertical llamada Gallery_mostrar.

En el evento Item agregamos:
If(Icon_siguiente.DisplayMode = DisplayMode.Disabled,
    LastN(FirstN(Gallery_ocultar.AllItems, Dropdown_paginas.Selected.Value * v_Paginas ),
        Dropdown_paginas.Selected.Value - (Dropdown_paginas.Selected.Value * v_Paginas - CountRows(Gallery_ocultar.AllItems))
    ),
    LastN(FirstN(Gallery_ocultar.AllItems, Dropdown_paginas.Selected.Value * v_Paginas ),
        Dropdown_paginas.Selected.Value
    )
)

Agregamos 2 Label a Gallery_mostrar, para llamar los campos de la lista de SharePoint.


Ejecutamos la app y podremos ver el funcionamiento de nuestra paginación.



Publicar un comentario

Artículo Anterior Artículo Siguiente