jueves, 24 de julio de 2008

Método de paginación para un elemento repeater

Este es un método sencillo, para realizar la paginación de un elemento repeater en .net

Función en javascript. Esto va en el segmento head de la página

<script language="javascript" >
function MuevePagina(NumPaginaSeleccionada)
{
Form1.txtPaginaSiguente.value = NumPaginaSeleccionada;
Form1.submit();
}
</script>



Este será el componente .net, de tipo label que presentará todas los números de página.
<asp:Label id="lblPaginaActual" runat="server" ></asp:Label>


Este es un componente .net, de tipo label oculto con el que se realiza el manejo de la selección (junto con la función js)
<asp:TextBox id="txtPaginaSiguente" style = "visibility: hidden;" runat="server"></asp:TextBox>


Esta parte debe estár dentro del código a ejecutarse en el server (code behind, apsx.vb)
Aquí es donde se realiza la carga de los elementosen el objeto PagedDataSource y se configura para su presentación.

Dim _dt As PagedDataSource
_dt = New PagedDataSource
' RFC.Pagare es un objeto de tipo DataTable, que ya contiene los elementos a presentar
_dt.DataSource = RFC.Pagare.DefaultView
_dt.AllowPaging = True
_dt.PageSize = 15 'Número de elementos por página
_dt.CurrentPageIndex = _intPaginaActual
' rptPrincipal es un componente .net del tipo repeater.
rptPrincipal.DataSource = _dt
rptPrincipal.DataBind()



Este segmento de código permite armar el texto a presentar con el que el usuario podrá seleccionar las diferentes páginas
Dim i As Integer
lblPaginaActual.Text = "Paginas: "
Dim _strLink As String
Dim _strLinkCierre, _strComa As String
_strComa = ""
For i = 0 To _dt.PageCount - 1
If i <> _intPaginaActual Then
_strLink = "<a onclick = ""MuevePagina(" & (i) & ")"" style=""CURSOR: hand; TEXT-DECORATION: underline"">"
_strLinkCierre = "</a>"
Else
_strLink = ""
_strLinkCierre = ""
End If
lblPaginaActual.Text = lblPaginaActual.Text & _strComa & _strLink & (i + 1) & _strLinkCierre
_strComa = ", "
Next

No hay comentarios:

Búsqueda