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)
)
)
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.