Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Paginar DataGrid en C# (http://www.forosdelweb.com/f29/paginar-datagrid-c-231667/)

shinblood 15/09/2004 10:53

Paginar DataGrid en C#
 
Hola amigos del Foro .Net, la verdad pido disculpas por el titulo (soy nuevo en .Net) lo malo es que tengo este problema desde ayer y no le encuentro solucion a pesar que he consultado un monton de tutoriales. Tengo un DataGrid con el siguiente Code:

Código PHP:

using System;
using System.Data.SqlClient;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;


namespace prueba
{
    
/// <summary>
    /// Descripción breve de paginado.
    /// </summary>
    
public class paginado System.Web.UI.Page
    
{
        protected 
System.Data.DataSet dset= new DataSet();
        protected 
System.Web.UI.WebControls.DataGrid DataGrid1;
    
        private 
void Page_Load(object senderSystem.EventArgs e)
        {
            
            if( !
Page.IsPostBack )
            {
                
EnlazaDatos();

            }
                
        }
        private 
void EnlazaDatos()
        {
            
SqlConnection conexion =new SqlConnection(Global.DbString);
            
conexion.Open();
            
SqlCommand mySqlCommand  = new SqlCommand("SELECT productname,unitprice,unitsinstock FROM Products ORDER BY productname ASC"conexion);
            
SqlDataAdapter adapter= new SqlDataAdapter(mySqlCommand);
            
adapter.Fill(dset);
            
DataGrid1.DataSource=dset;
            
DataGrid1.DataBind();
            
adapter.Dispose();
            
mySqlCommand.Dispose();
            
conexion.Close();
        }
        private 
void DataGrid1_PageIndexChanged(object source,System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
        {    
            
DataGrid1.CurrentPageIndex e.NewPageIndex;
            
EnlazaDatos();
        }
        
        
#region Web Form Designer generated code
        
override protected void OnInit(EventArgs e)
        {
            
//
            // CODEGEN: llamada requerida por el Diseñador de Web Forms ASP.NET.
            //
            
InitializeComponent();
            
base.OnInit(e);
        }
        
        
/// <summary>
        /// Método necesario para admitir el Diseñador, no se puede modificar
        /// el contenido del método con el editor de código.
        /// </summary>
        
private void InitializeComponent()
        {    
            
this.Load += new System.EventHandler(this.Page_Load);

        }
        
#endregion
    
}



pero a pesar que hago click en los links de la paginado solo me muestra la primera pagina

DotNetDeveloper 15/09/2004 11:03

En ocasiones el Visual Studio no genera la suscripción al evento

Código:

        private void InitializeComponent()
        {   
            this.Load += new System.EventHandler(this.Page_Load);
            this.DataGrid1.PageIndexChanged += new DataGridPageChangedEventHandler(this.DataGridD1_PageIndexChanged);
        }

Creo que con eso debería funcionar

shinblood 15/09/2004 11:11

gracias DotNetDeveloper :arriba: , al fin pude salir de este lio como soy nuevo hay cosas que aun no entiendo....disculpen la rebundancia del tema

un saludo :adios:

miguelinso 30/09/2004 10:51

Yo he probado ésto y sólo me muestra la primera página. El contenido del namespace es el siguiente:

public class _default1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid MyDataGrid;
protected System.Web.UI.WebControls.Label lblEnabled;
protected System.Web.UI.WebControls.Label lblCurrentIndex;
protected System.Web.UI.WebControls.Label lblPageCount;
protected System.Web.UI.WebControls.Label lblCustom;
protected System.Web.UI.WebControls.Label lblPageSize;
protected System.Web.UI.WebControls.Label lblVirtual;
//protected System.Web.UI.WebControls.DataGrid DataGrid1;
protected ComponentArt.Web.UI.Menu Menu1;

protected System.Data.DataSet dset= new DataSet();
protected System.Web.UI.WebControls.DataGrid DataGrid1;


private void Page_Load(object sender, System.EventArgs e)
{
// Introducir aquí el código de usuario para inicializar la página
if (!Page.IsPostBack)
EnlazaDatos();
}
private void EnlazaDatos()
{
OdbcConnection conexion;
OdbcCommand comando;
OdbcDataAdapter objDataAdapter;

//Comprueba que el usuario y password son correctos
AppSettingsReader rdr =new AppSettingsReader();
string strCadenaConexionBD = rdr.GetValue("ConexionBDASA",typeof(string)).ToStr ing();

conexion= new OdbcConnection();
conexion.ConnectionString=strCadenaConexionBD;
conexion.Open();

comando=new OdbcCommand();
comando.Connection=conexion;
comando.CommandText= "select terapia_id, terapia_descripcion from terapia order by terapia_id";

objDataAdapter = new OdbcDataAdapter(comando);
objDataAdapter.Fill(dset);

DataGrid1.DataSource=dset;
DataGrid1.DataBind();
objDataAdapter.Dispose();
comando.Dispose();
conexion.Close();
}

private void DataGrid1_PageIndexChanged(object source,System.Web.UI.WebControls.DataGridPageChang edEventArgs e)
{
DataGrid1.CurrentPageIndex = e.NewPageIndex;
EnlazaDatos();
}



#region Código generado por el Diseñador de Web Forms
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: llamada requerida por el Diseñador de Web Forms ASP.NET.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Método necesario para admitir el Diseñador. No se puede modificar
/// el contenido del método con el editor de código.
/// </summary>
private void InitializeComponent()
{
this.DataGrid1.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEvent Handler(this.DataGrid1_PageIndexChanged);
this.DataGrid1.SelectedIndexChanged += new System.EventHandler(this.DataGrid1_SelectedIndexCh anged);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e)
{

}


}


Lo he traceado. La primera pagina se ve bien. Pinchas en el enlace para ver la segunda y ves que, tras quedarse la ejecución sin entrar en el if del método "Page_Load" me muestra una página en blanco.
Puede alguien ayudarme?
¿Cómo puedo hacer para que en vez de tener que navegar por las páginas de resultados pinchando en el enlace imagen ">" pudiera hacerlo con las letras del abecedario al pie de la tabla de resultados para así ir a los resultados que empiecen por la letra que me interese?


:-(


La zona horaria es GMT -6. Ahora son las 23:05.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.