El Guru Programador
Usuario DESCONOCIDO | Registrate Gratis | Usuarios Registrados
Foro de ASP/ASP.NET
Foros del Guru > ASP/ASP.NET
Usuario Paginar una consulta en ASP.NET, H...
Desconocido
Enviado - 15/3/2003
 
Busqué foros de ASP.NET que me indicaran como hacer para paginar los resultados de una consulta pero o no los encontré o no los entendía así que después de muchos intentos lo logré pero... considero que a pesar que son menos de 125 líneas aún no es una solución "elegante" por que nunca programé en VB y me es difícil entender el comportamiento de las variables así que hice uso de funciones que devuelven valores fijos y TextBox para valores variables. Aún así hay mucha redundancia y creo que se pueden reducir unas 30-40 líneas. Quien sepa como hacerlo (y lo haga)le agradeceré infinitamente pues me gustaría que este ejemplo esté al alcance de todos. [email protected]


<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<HTML>
<script language="VB" runat="server">

Function Cadena() As string
Return "server=(local)\NetSDK;database=pubs;Trusted_Connection=yes"
End Function

Function PageSize() As Integer
Return 20
End Function

Sub Page_Load(Sender As Object, E As EventArgs)

Dim objConexion as SqlConnection
Dim objComando as SqlDataAdapter
Dim Total_Paginas as integer
Dim DS As DataSet

If Not IsPostBack Then
Primer_Registro.text="0"

objConexion = New SqlConnection(Cadena())

'Determinamos el total de registros de la consulta
Dim totCMD As SqlCommand = New SqlCommand("select count(*) from BEEX", objConexion)
objConexion.open()
Dim TotalRecords As Integer = CInt(totCMD.ExecuteScalar())
objConexion.close()
Total_Registros.text=TotalRecords

'Total_Paginas = CInt(Math.Ceiling(CDbl(totalRecords) / pageSize()))

objComando = New SqlDataAdapter("select * from BEEX order by EXCODEX", objConexion)
DS = New DataSet()
objComando.Fill(ds, val(Primer_registro.Text), PageSize(), "Expedientes")

MyRepeater.DataSource = ds.Tables("Expedientes").DefaultView
MyRepeater.DataBind()
End If

End Sub

Sub Boton_Avanzar_Click(sender As Object, e As EventArgs)

Dim objConexion as SqlConnection
Dim objComando as SqlDataAdapter
Dim DS As DataSet

IF (val(Total_Registros.Text)-val(Primer_registro.Text))>=PageSize() then

Primer_registro.Text=str(val(Primer_registro.Text)+pagesize())

objConexion = New SqlConnection(Cadena())
objComando = New SqlDataAdapter("select * from BEEX order by EXCODEX", objConexion)
DS = New DataSet()

objComando.Fill(ds, val(Primer_registro.Text), PageSize(), "Expedientes")

MyRepeater.DataSource = ds.Tables("Expedientes").DefaultView
MyRepeater.DataBind()
End If
End Sub

Sub Boton_Atras_Click(sender As Object, e As EventArgs)

Dim objConexion as SqlConnection
Dim objComando as SqlDataAdapter
Dim DS As DataSet

IF val(Primer_registro.Text)>0 then

Primer_registro.Text=str(val(Primer_registro.Text)-pagesize())

objConexion = New SqlConnection(Cadena())
objComando = New SqlDataAdapter("select * from BEEX order by EXCODEX", objConexion)
DS = New DataSet()

objComando.Fill(ds, val(Primer_registro.Text), PageSize(), "Expedientes")

MyRepeater.DataSource = ds.Tables("Expedientes").DefaultView
MyRepeater.DataBind()

End If

End Sub

</script>
<body leftMargin="0" topMargin="0" marginheight="0" marginwidth="0">
<ASP:REPEATER id="MyRepeater" runat="server">
<HeaderTemplate>
<table width="100%" style="font: 8pt verdana">
<tr style="background-color:DFA894">
<th>
Codigo</th>
<th>
Codigo Resp</th>
<th>
Categoria</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr style="background-color:FFECD8">
<td><%# DataBinder.Eval(Container.DataItem, "EXCODEX") %>
</td>
<td><%# DataBinder.Eval(Container.DataItem, "EXCODEMP") %>
</td>
<td><%# DataBinder.Eval(Container.DataItem, "EXASUNTO") %>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</ASP:REPEATER>
<form id="Form1" runat="server">
<asp:button id="Button_Atras" runat="server" Text="<" onclick="Boton_Atras_click"></asp:button>
<asp:TextBox id="Primer_Registro" runat="server" Width="49px"></asp:TextBox>
<asp:Button id="Boton_Avanzar" runat="server" Text=">" OnClick="Boton_Avanzar_click"></asp:Button>
<asp:TextBox id="Total_Registros" runat="server" Width="49px"></asp:TextBox>
</form>
</body>
</HTML>
 
 

 

Contactos myStudio Network