Foros del Web » Programando para Internet » ASPX (.net) »

Problemas al Paginar un datagrid

Estas en el tema de Problemas al Paginar un datagrid en el foro de ASPX (.net) en Foros del Web. Hola tengo un Boton que al pulsar sobre el debe mostrarme en un datagrid lo buscado paginandolo pero no lo consigo paginar, si alguien me ...
  #1 (permalink)  
Antiguo 28/03/2006, 09:49
 
Fecha de Ingreso: febrero-2006
Mensajes: 26
Antigüedad: 18 años, 2 meses
Puntos: 0
Pregunta Problemas al Paginar un datagrid

Hola tengo un Boton que al pulsar sobre el debe mostrarme en un datagrid lo buscado paginandolo pero no lo consigo paginar, si alguien me puede echar una mano el codio es el siguiente,gracias:

Private Sub btnBuscar_Click(ByVal sender As System.Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnBuscar.Click
Dim DBConn As SqlConnection
Dim DBCommand As SqlDataAdapter
Dim sql As String
Dim DSPageData As New DataSet


DBConn = New SqlConnection("Data Source=Home;Network Library=DBMSSOCN;Initial Catalog=asdfd;User ID=sa;Password=sa;")
sql = "Select IdCliente,NombreCliente,Apellido1Cliente,Apellido2 Cliente,TelefonoPaisCliente,TelefonoCliente,NifCli ente,Autokatti365,ListaNegraCliente from Clientes Where EmpresaCliente= 1"


If txtNif.Text <> "" Then
sql = sql & " And NifCliente Like '" & txtNif.Text & "%'"
End If

If txtIdCliente.Text <> "" Then
sql = sql & " And IdCliente" & ddlIdCliente.SelectedValue & txtIdCliente.Text
End If


If txtApellido1.Text <> "" Then
sql = sql & " And Apellido1Cliente LIKE '" & txtApellido1.Text & "%'"
End If

If txtApellido2.Text <> "" Then
sql = sql & " And Apellido2Cliente LIKE '" & txtApellido2.Text & "%'"
End If

If txtNombre.Text <> "" Then
sql = sql & " And NombreCliente LIKE '" & txtNombre.Text & "%'"
End If


If chkAut.Checked = True Then
sql = sql & " And Auto=1"
End If


If txtIntroAgencia.Text <> "" Then
sql = sql & " And AgenciaCliente=" & txtIntroAgencia.Text
End If


DBCommand = New SqlDataAdapter(sql, DBConn)


DBCommand.Fill(DSPageData, "Clientes")
DGClientes.DataSource = DSPageData.Tables("Clientes").DefaultView
DGClientes.DataBind()
End Sub




Sub DGClientes_IndexChanged(ByVal obj As Object, ByVal e As DataGridPageChangedEventArgs)
DGClientes.CurrentPageIndex = e.NewPageIndex
DGClientes.DataBind()
End Sub


EL HTML ES EL QUE SIGUE

<asp:datagrid id="DGClientes" style="Z-INDEX: 117; LEFT: 56px; POSITION: absolute; TOP: 304px" runat="server" BorderStyle="Outset" BackColor="Ivory" Width="736px" BorderColor="#E0E0E0" PageSize="13" AllowPaging="True" AutoGenerateColumns="false" BorderWidth="2px" OnPageIndexChanged="DGClientes_IndexChanged" PagerStyle-PageButtonCount="13">
  #2 (permalink)  
Antiguo 28/03/2006, 20:01
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Sería mejor si indentas el código no?

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #3 (permalink)  
Antiguo 29/03/2006, 05:56
 
Fecha de Ingreso: octubre-2004
Mensajes: 55
Antigüedad: 19 años, 6 meses
Puntos: 0
TE indico un ejemplo. Espero q te sirva

[SIZE="1"]<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm2.aspx.vb" Inherits="exporta.WebForm2"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>WebForm2</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">

</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:datagrid id="Datagrid" style="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 112px" runat="server"
BorderWidth="1" AlternatingItemStyle-BackColor="#eeeeee" CellSpacing="0" OnPageIndexChanged="DataGrid_Page"
PageSize="30" PagerStyle-PrevPageText="Anterior" PagerStyle-NextPageText="Siguiente" PagerStyle-HorizontalAlign="Right"
PagerStyle-Mode="NumericPages" AutoGenerateColumns="false" HeaderStyle-BackColor="#aaaadd"
CellPadding="1" GridLines="none" Font-Name="Verdana" BorderColor="black" Width="900px" AllowPaging="True"
Font-Size="XX-Small" Font-Names="Verdana" Height="764px">
<AlternatingItemStyle BackColor="#EEEEEE"></AlternatingItemStyle>
<HeaderStyle BackColor="#AAAADD"></HeaderStyle>
<Columns>
<asp:TemplateColumn HeaderText="N.I.F.">
<ItemTemplate>
<asp:label id="lblNIF" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "NIF") %>' Width="100px" Font-Name="Verdana" Font-Size="XX-Small"/>
</asp:label>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
[/SIZE]
......
Lo de arriba sería parte del codigo de webForm.aspx en la vista html.
En WebForm.apsx.vb iría lago así

Public Class WebForm2
Inherits System.Web.UI.Page

Private cartView As DataView
Protected WithEvents lblMsg As System.Web.UI.WebControls.Label
Private clsdb As New ClsDB

#Region " Web Form Designer Generated Code "

'This call is required by the Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

End Sub
Protected WithEvents Datagrid As System.Web.UI.WebControls.DataGrid

'NOTE: The following placeholder declaration is required by the Web Form Designer.
'Do not delete or move it.
Private designerPlaceholderDeclaration As System.Object

Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: This method call is required by the Web Form Designer
'Do not modify it using the code editor.
InitializeComponent()
End Sub

#End Region

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
cartView = Cart.DefaultView
If Not IsPostBack Then
cartView = Cart.DefaultView
BindGrid()
End If
End Sub

Private Sub BindGrid()
Datagrid.DataSource = cartView
Datagrid.DataBind()
End Sub

ReadOnly Property Cart() As DataTable
Get

Dim tmpData As DataTable
Dim dr As DataRow


If Session("Datos") Is Nothing Then

'crea DataTable
tmpData = New DataTable
'
tmpData.Columns.Add(New DataColumn("NIF", GetType(String)))
tmpData.Columns.Add(New DataColumn("Raz_Social", GetType(String)))
tmpData.Columns.Add(New DataColumn("Nombre_com", GetType(String)))
tmpData.Columns.Add(New DataColumn("Domicilio", GetType(String)))
tmpData.Columns.Add(New DataColumn("Localidad", GetType(String)))
tmpData.Columns.Add(New DataColumn("CP", GetType(String)))
tmpData.Columns.Add(New DataColumn("Provincia", GetType(String)))
tmpData.Columns.Add(New DataColumn("Telefono", GetType(String)))
tmpData.Columns.Add(New DataColumn("Fax", GetType(String)))
tmpData.Columns.Add(New DataColumn("Web", GetType(String)))
tmpData.Columns.Add(New DataColumn("_Mail", GetType(String)))
tmpData.Columns.Add(New DataColumn("Productos", GetType(String)))






Session("datos") = tmpData



clsdb.connectDB()
Dim rdrControl As System.Data.SqlClient.SqlDataReader
Dim cmd As SqlClient.SqlCommand
cmd = clsdb.getCMD

Dim st As String = "Select NIF, RAZ_SOCIAL, NOMBRE_COM, DOMICILIO, LOCALIDAD, CP, " & _
"PROVINCIA, TELEFONO, FAX, WEB, _MAIL, PRODUCTOS, Numero_de_ " & _
"FROM EMPRESAS WHERE nif LIKE '%" & Request.Params.Get("nif") & "%' "

If Request.Params.Get("razon").Length > 0 Then
st = st & "AND raz_social LIKE '%" & Request.Params.Get("razon") & "%' "
End If
If Request.Params.Get("web").Length > 0 Then
st = st & "AND web LIKE '%" & Request.Params.Get("web") & "%' "
End If
If Request.Params.Get("sector").Length > 0 Then
st = st & "AND sector_exc LIKE '%" & Request.Params.Get("sector") & "%' "
End If
If Request.Params.Get("prov").Length > 0 Then
st = st & "AND provincia LIKE '%" & Request.Params.Get("prov") & "%' "
End If
If Request.Params.Get("nombre").Length > 0 Then
st = st & "AND nombre_com LIKE '%" & Request.Params.Get("nombre") & "%' "
End If
If Request.Params.Get("dom").Length > 0 Then
st = st & "AND domicilio LIKE '%" & Request.Params.Get("dom") & "%' "
End If
If Request.Params.Get("cp").Length > 0 Then
st = st & "AND cp LIKE '%" & Request.Params.Get("cp") & "%' "
End If
If Request.Params.Get("fax").Length > 0 Then
st = st & "AND fax LIKE '%" & Request.Params.Get("fax") & "%' "
End If
If Request.Params.Get("tel").Length > 0 Then
st = st & "AND telefono LIKE '%" & Request.Params.Get("tel") & "%' "
End If
If Request.Params.Get("mail").Length > 0 Then
st = st & "AND _mail LIKE '%" & Request.Params.Get("mail") & "%' "
End If
If Request.Params.Get("prod").Length > 0 Then
st = st & "AND productos LIKE '%" & Request.Params.Get("prod") & "%' "
End If

cmd.CommandText = st
cmd.CommandType = CommandType.Text
rdrControl = cmd.ExecuteReader

With rdrControl
While .Read

dr = tmpData.NewRow()

dr(0) = .Item("NIF")
dr(1) = .Item("Raz_Social")
dr(2) = .Item("Nombre_com")
dr(3) = .Item("Domicilio")
dr(4) = .Item("Localidad")
dr(5) = .Item("CP")
dr(6) = .Item("Provincia")
dr(7) = .Item("Telefono")
dr(8) = .Item("Fax")
dr(9) = .Item("Web")
dr(10) = .Item("_Mail")


tmpData.Rows.Add(dr)



End While
End With

clsdb.disconnectDB()

Return tmpData
Else
Return Session("Datos")
End If
End Get
End Property

Sub DataGrid_Page(ByVal sender As Object, ByVal e As DataGridPageChangedEventArgs)
Datagrid.CurrentPageIndex = e.NewPageIndex
'Me.lblCurrentIndex.Text = DataGrid.CurrentPageIndex + 1
BindGrid()
End Sub


...

Espero que te sirva
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:08.