ASP.NET - Paginacion de Registros sin Gridview

 
Vista:

Paginacion de Registros sin Gridview

Publicado por Dario Cortes Martinez (2 intervenciones) el 23/01/2007 21:43:14
Aca les dejo una paginacion q cree

Agradeceria si pueden mejorarla y comunicarme a [email protected]

Ocupenlo y disfrutenlo

<%@ Page Language="VB" debug="true"%>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.Sqlclient" %>
<%@ Import Namespace="System.Data.Datatable" %>

<script runat="server">

Dim conn As Data.SqlClient.SqlConnection
Dim nomtabla As String = "vw_Productos_WEB"
Dim paginaactual, cantidad, paginas, contar, i, pagfinal As Integer
Dim trs As New Data.DataTable()
Dim inicial As Integer
Private Sub page_load(ByVal sender As Object, ByVal e As EventArgs)

If Not IsPostBack() Then
cantidad = 10
inicial = Request("inicial")


Response.Write("La Pagina actual es : " & Int(inicial / 10) + 1 & "<br/>")
Response.Write("La cantidad de registros por paginas son : " & cantidad & "<br/>")
Response.Write("El Valor inicial es : " & inicial & "<br/>")


Dim dset As Data.DataSet
Dim dter As Data.SqlClient.SqlDataAdapter
Dim conexion, rs As String

conexion = "data source=<<BASE DE DATOS>>;initial catalog=ecc_web; User Id=<<USUARIO>>;Password=<<PASSWORD>>"

'consultas
rs = "Select * from <<TABLA>> where <<CONDICION>>"

'conexion
Try
conn = New Data.SqlClient.SqlConnection(conexion)
Catch ex As Exception
Response.Write("Error al Conectar a la Base de Datos")
Exit Sub
End Try

'abrir Base de Datos
conn.Open()

'Asignacion de Datos al dataset,dataadapter
'Primera RS
Response.Write(rs & "<br/>")
dset = New Data.DataSet()
dter = New Data.SqlClient.SqlDataAdapter(rs, conn)

'Validando
Dim commbuilder As New SqlClient.SqlCommandBuilder(dter)
dter.MissingSchemaAction = MissingSchemaAction.AddWithKey
Try
dter.Fill(dset, nomtabla)
Catch ex As Exception
Response.Write("<br/>" & ex.Message)
End Try


'Asignacion de Registros a la tabla
trs = dset.Tables(0)

contar = trs.Rows.Count
paginas = Int(contar / cantidad)
pagfinal = trs.Rows.Count Mod 10


'tabla para mostrar registros
Response.Write("<table border='0' align='center' cellpadding='0' cellspacing='0' ><tr> ")
Response.Write("<td nowrap='nowrap'> </td><td nowrap='nowrap'> </td><td nowrap='nowrap'> </td>")
Response.Write("<td nowrap='nowrap'> </td><td nowrap='nowrap'> </td nowrap='nowrap'><td> </td>")
Response.Write("</tr><tr><td> </td>")

If inicial > 0 Then
Response.Write("<td><a href='paginacion.aspx?inicial=0'>|<< </a></td><td><a href='paginacion.aspx?inicial=")
End If

If (inicial - 10) < 0 Then

Else
Response.Write(inicial - 10)
Response.Write("'> < </a></td><td>")
End If

'Numero de las pagina
If (inicial / 10) <= paginas Then
Dim pagbold As Integer
pagbold = Int(inicial / 10)

If (inicial < 100) Then
For i = (inicial / 10) - 9 To 19
If (pagbold = i) Then
If Not (i < 0 Or i > paginas) Then
Response.Write("<td style='font-weight:bold;font-size:16px;color:#0099FF;width:10px;'>" & i + 1 & " </td>")
End If
Else
If Not (i < 0 Or i > paginas) Then
Response.Write("<td style='width:10px;'><a href='paginacion.aspx?inicial=" & i * 10 & "'>" & i + 1 & " </a></td>")
End If
End If
Next
End If


If inicial >= 100 And inicial < (paginas * 10) - 90 Then
'Condiciones de muestra de numeros de paginas
For i = (inicial / 10) - 9 To (inicial / 10) + 9
If (pagbold = i) Then
If Not (i < 0 Or i > paginas) Then
Response.Write("<td style='font-weight:bold;font-size:16px;color:#0099FF;width:10px;'>" & i + 1 & " </td>")
End If
Else
If Not (i < 0 Or i > paginas) Then
Response.Write("<td style='width:10px;'><a href='paginacion.aspx?inicial=" & i * 10 & "'>" & i + 1 & " </a></td>")
End If
End If
Next
End If

If inicial >= (paginas * 10) - 90 Then
'Condiciones de muestra de numeros de paginas
For i = paginas - 17 To (inicial / 10) + 9
If (pagbold = i) Then
If Not (i < 0 Or i > paginas) Then
Response.Write("<td style='font-weight:bold;font-size:16px;color:#0099FF;width:10px;'>" & i + 1 & " </td>")
End If
Else
If Not (i < 0 Or i > paginas) Then
Response.Write("<td style='width:10px;'><a href='paginacion.aspx?inicial=" & i * 10 & "'>" & i + 1 & " </a></td>")
End If
End If
Next
End If

End If

Response.Write("</td><td><a href='paginacion.aspx?inicial=")
If (inicial + 10) > paginas * 10 + 1 Then
inicial = paginas * 10
Response.Write(inicial)
Else
Response.Write(inicial + 10)
End If

If inicial = paginas * 10 Then
Response.Write("'></td>")
Else
Response.Write("'> > </a></td>")
Response.Write("<td><a href='paginacion.aspx?inicial=" & paginas * 10 & "'> >>|</a></td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td>")
End If
Response.Write("<td> </td></tr></table>")

'imprimir registros
Response.Write("<br/><br/><br/>La cantidad de Datos en rs son : " & contar & "<br/>")
Response.Write("La cantidad de Paginas en rs son : " & paginas & "<br/>")
Response.Write("La registros de la pagina final es:" & pagfinal & "<br/>")
Response.Write("<br/><br/><br/><br/>PRODUCTOS<br/><br/><br/><br/>")


Response.Write("<table width='700' border='0' cellspacing='0' cellpadding='0'><tr><td>Marca</td>")
Response.Write("<td>Imagen</td><td>descripcion</td><td>precio</td><td>Comprar</td></tr>")

If Not Int(inicial / 10) = paginas Then
For i = inicial To inicial + 9
Response.Write("<tr><td nowrap='nowrap'>" & trs.Rows(i).Item("marca") & " </td><td nowrap='nowrap'>" & trs.Rows(i).Item("rutaimagens") & " </td>")
Response.Write("<td nowrap='nowrap'>" & trs.Rows(i).Item("descripción") & " </td><td nowrap='nowrap'>" & FormatNumber(Int(trs.Rows(i).Item("precio")), 0) & " </td>")
Response.Write("<td nowrap='nowrap'> </td></tr>")
Next
Else
For i = inicial To inicial + pagfinal - 1
Response.Write("<tr><td nowrap='nowrap'>" & trs.Rows(i).Item("marca") & " </td><td nowrap='nowrap'>" & trs.Rows(i).Item("rutaimagens") & " </td>")
Response.Write("<td nowrap='nowrap'>" & trs.Rows(i).Item("descripción") & " </td><td nowrap='nowrap'>" & FormatNumber(Int(trs.Rows(i).Item("precio")), 0) & " </td>")
Response.Write("<td nowrap='nowrap'> </td></tr>")
Next
End If
Response.Write("</table><br/><br/><br/><br/><br/>")


'Todos los registros
For i = 0 To trs.Rows.Count - 1
Response.Write(trs.Rows(i).Item("descripción") & "<br/>")
Next

'Cerrar Bases de Datos
conn.Close()

End If
End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Paginacion de Archivos</title>
<style type="text/css">
<!--
body,td,th {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
color: #666666;
}
a:link {
color: #0099FF;
text-decoration: none;
}
a:visited {
text-decoration: none;
color: #0099FF;
}
a:hover {
text-decoration: none;
color: #0099FF;
font-weight:bold;
}
a:active {
text-decoration: none;
color: #FF0066;
}
-->

</style>
</head><body> </body>
</html>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder