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

Paginacionn del gridview.

Estas en el tema de Paginacionn del gridview. en el foro de ASPX (.net) en Foros del Web. Hola yo tengo un gridview configurada la propiedad PagerSettings con mode "numeric" pero yo tengo bastante registros se me haria más fácil si en lugar ...
  #1 (permalink)  
Antiguo 07/04/2008, 13:26
 
Fecha de Ingreso: junio-2007
Mensajes: 253
Antigüedad: 16 años, 10 meses
Puntos: 0
Paginacionn del gridview.

Hola yo tengo un gridview configurada la propiedad PagerSettings con mode "numeric" pero yo tengo bastante registros se me haria más fácil si en lugar de salir la páginacion asi:


1234564789...

me saliera asi:

123456789 Siguiente

Anterior 10 11 12 13 14 15 16 17 18 19 Siguiente

Como yo podría lograr esa paginción?

Gracias.
  #2 (permalink)  
Antiguo 07/04/2008, 14:42
 
Fecha de Ingreso: noviembre-2007
Ubicación: Trabajo en INEGI
Mensajes: 33
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Paginacionn del gridview.

Ok amigo espero te pueda servir este codigo ...


en la parte de html, yo tengo lo siguiete

defino una tabla para los titulos
<table borderColor="#006599" cellSpacing="0" cellPadding="0" width="98%" bgColor="#e7eef5" border="1">
<tr>
<td class="txt_azul_9b" style="BORDER-RIGHT: #e7eef5 1px solid; BORDER-TOP: #006599 1px solid; BORDER-LEFT: #006599 1px solid; BORDER-BOTTOM: #006599 1px solid" align="center" width="14%">Clave</td>
<td class="txt_azul_9b" style="BORDER-RIGHT: #e7eef5 1px solid; BORDER-TOP: #006599 1px solid; BORDER-LEFT: #006599 1px solid; BORDER-BOTTOM: #006599 1px solid" align="left" width="70%">&nbsp;&nbsp;Catálogo de Productos</td>
</table>

<table cellSpacing="0" cellPadding="0" width="100%" border="0">
<tr >
<td>&nbsp;</td></tr>
<tr><td vAlign="top">
defino un area para poner el grid con scroll
<div style=" BORDER-RIGHT:#006599 1px solid; BORDER-TOP:#006599 1px solid; BORDER-LEFT:#006599 1px solid; BORDER-BOTTOM:#006599 1px solid; WIDTH:99%; HEIGHT:330px; overflow:scroll">
<asp:DataList ID="MyProducto" runat="server" GridLines="None" Width="100%" OnItemDataBound="MyProducto_ItemDataBound" CellPadding="0">
<ItemTemplate>
<table cellSpacing="0" cellPadding="0" width="100%" align="center" border="0">
<tr>
<td vAlign="top" align="center" width="15%"> <asp:Label CssClass="txt_negro_9" id="upc" runat="server"></asp:Label></td>
<td vAlign="top" align="left" width="81%"> <asp:Label id="titulo" CssClass="txt_negro_9" runat="server"></asp:Label></td>
</tr>
</table>
</ItemTemplate>
<AlternatingItemStyle BackColor="White" HorizontalAlign="Center" VerticalAlign="Top" />
<ItemStyle BackColor="White" HorizontalAlign="Center" VerticalAlign="Top" Wrap="False" />
</asp:DataList>
</div></td>
</tr>
</table>
defino una tabla para encapsular la paginacion personal
<table cellSpacing="0" cellPadding="0" width="100%" align="center" border="0">
<tr>
<td width="45%">&nbsp;</td>
<td width="55%">&nbsp;</td>
</tr>
<tr>
<td class="txt_negro_9b">
defino el area donde voy a crear la paginación
<asp:Panel ID="PanelPaginacion" runat="server" Width="100%"></asp:Panel></td>
<td><asp:Button id="Button1" runat="server" Text="Asignar" ToolTip="Asigna los productos que se encuentran marcados al escaparate de la Tienda Virtual." OnClick="Button1_Click"></asp:Button></td>
</tr>
</table>


utilizo una base de datos sql-server 2005 y genere un procedimiento almacenado para paginar de forma efectiva


@PageNumber int
AS
SELECT
res.RowNumber, res.upc, res.titulo, substring(res.disponibilidad,3,1) as disponibilidad
FROM (
SELECT
ROW_NUMBER() OVER (ORDER BY p.upc ) AS RowNumber,
isnull(p.upc,'000000000000') as upc,
isnull(p.titulo,'nulo') as titulo,
isnull(p.disponibilidad,'00000') as disponibilidad
From esquema.tabla p
Where p.prod_liberado=1 and substring(p.disponibilidad,3,1)=1) AS res
WHERE RowNumber BETWEEN 25 * @PageNumber + 1
AND 25 * (@PageNumber + 1)


el parametro es la pagina que se quiere mostrar y solo regresa 25 registros cada vez

en webconfig

<appSettings>
<add key="PageSize" value="25"/>
</appSettings>


public static readonly int PageSize = Int32.Parse(ConfigurationManager.AppSettings.Get(" PageSize"));

private int TotalRowCount
{
get {
object o = ViewState["TotalRowCount"];
if (o == null)
return -1;
else
return (int)o;
}
set { ViewState["TotalRowCount"] = value; }
}

private int PageCount
{
get {
if (TotalRowCount <= 0 || TotalRowCount <= PageSize)
return 1;
else
return ((TotalRowCount + PageSize) - 1) / PageSize;
}
}

private int PageIndex
{
get {
if (!string.IsNullOrEmpty(Request.QueryString["pageIndex"]))
return Convert.ToInt32(Request.QueryString["pageIndex"]);
else
return 0;
}
}


protected void pintaPaginas(int tope)
{
this.PanelPaginacion.Controls.Clear();
CControles CWeb = new CControles();
if (tope > 10)
{
this.PanelPaginacion.Controls.Add(CWeb.Boton_image n("FirstPage", "~/img/primer.png", urlDestino(0)));
this.PanelPaginacion.Controls.Add(CWeb.Agrega_labe l("txt_blanco_8", "."));
this.PanelPaginacion.Controls.Add(CWeb.Boton_image n("PrevPage", "~/img/antes.png", urlDestino(tope - 11)));
this.PanelPaginacion.Controls.Add(CWeb.Agrega_labe l("txt_blanco_8", "."));
}
this.PanelPaginacion.Controls.Add(CWeb.Agrega_labe l("txt_negro_9", "[ Página "));
for (int i = tope - 9; i <= tope && i <= PageCount; i++)
{
this.PanelPaginacion.Controls.Add(CWeb.Agrega_Link (i.ToString(), "default.aspx?pageIndex=" + i.ToString()));
this.PanelPaginacion.Controls.Add(CWeb.Agrega_labe l("txt_blanco_8", "."));
}
this.PanelPaginacion.Controls.Add(CWeb.Agrega_labe l("txt_negro_9", "de " + PageCount.ToString() + " ]"));
if (tope < PageCount)
{
this.PanelPaginacion.Controls.Add(CWeb.Agrega_labe l("txt_blanco_8", "."));
this.PanelPaginacion.Controls.Add(CWeb.Boton_image n("NextPage", "~/img/siguiente.png", urlDestino(tope + 1)));
this.PanelPaginacion.Controls.Add(CWeb.Agrega_labe l("txt_blanco_8", "."));
this.PanelPaginacion.Controls.Add(CWeb.Boton_image n("LastPage", "~/img/ultimo.png", urlDestino(PageCount)));
}
}



protected void Page_Load(object sender, EventArgs e)
{
if (!this.Page.IsPostBack)
TotalRowCount = (int)SqlHelper.ExecuteScalar(SqlHelper.ConnectionS tringLocalTransaction, CommandType.Text, "Select count(*) From esquema.tabla ", null);

if (this.Page.Request.Params["pageIndex"] == null)
this.MyProducto.DataSource = tbl.GetLN_Admon_TV_pagina(0);
else
this.MyProducto.DataSource = tbl.GetLN_Admon_TV_pagina(this.Page.Request.Params["pageIndex"] );
this.MyProducto.DataBind();
if (PageCount > 1)
this.pintaPaginas(((this.PageIndex / 10) + 1) * 10);
}


espero te sirva
  #3 (permalink)  
Antiguo 07/04/2008, 16:05
 
Fecha de Ingreso: junio-2007
Mensajes: 253
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Paginacionn del gridview.

Gracias por responder amigo, pero noto un poco compleja tu respuesta aún si yo podría intentarlo pero tu control es un DataList y yo tengo un GridView será que no me da problemas.
Con si alguien tiene una opción más sencilla y si es posible desde las propieddaes del gridview bienvenida sea.
  #4 (permalink)  
Antiguo 09/04/2008, 10:01
 
Fecha de Ingreso: junio-2007
Mensajes: 253
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Paginacionn del gridview.

Nadie más tiene una idea, yo no quiero quitar la paginación numerica del datagrid yo solo quiero además de la numeración dos enlaces anterior y siguiente, no hy forma de lograr eso son tanto cosa?

Anterior 123456789... Siguente

Solo quiero asi que salga en la misma grilla, please ayudenme.
  #5 (permalink)  
Antiguo 09/04/2008, 12:22
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Re: Paginacionn del gridview.

Me uno al pedido.....
  #6 (permalink)  
Antiguo 31/08/2008, 23:19
vicenct06
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Paginacionn del gridview.

Hola

Ojal a te sirva este link:
http://netcodigo.webinfo.es/2007/12/03/paginar-gridview-como-google-analytics/
  #7 (permalink)  
Antiguo 16/06/2011, 08:05
 
Fecha de Ingreso: julio-2010
Mensajes: 4
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Paginacionn del gridview.

Rodro ya se que este post es de hace mucho tiempo, pero tengo exactamente el mismo problema que tu, si pudieras ayudarme y me dijeras finalmente que código aplicaste...

Muchas gracias
  #8 (permalink)  
Antiguo 17/06/2011, 12:01
Avatar de Cantasken  
Fecha de Ingreso: junio-2011
Ubicación: Ate vitarte
Mensajes: 10
Antigüedad: 12 años, 10 meses
Puntos: 2
De acuerdo Respuesta: Paginacionn del gridview.

Cita:
Iniciado por davicillo8 Ver Mensaje
Rodro ya se que este post es de hace mucho tiempo, pero tengo exactamente el mismo problema que tu, si pudieras ayudarme y me dijeras finalmente que código aplicaste...

Muchas gracias
Hola amixo,Te dejo un video que yo hice , trata mas o menos sobre lo que estas buscando

Espero que te ayude

Suerte ^^
http://www.youtube.com/watch?v=k6XJ9BH0rNk
  #9 (permalink)  
Antiguo 27/06/2011, 04:09
 
Fecha de Ingreso: julio-2010
Mensajes: 4
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Paginacionn del gridview.

Gracias Cantasken, esa paginación que muestras en el video es la que tengo, sin problemas, pero yo lo que necesito es este formato:

Primero Anterior 1 2 3 4 ... Siguiente Último

Obviamente si estamos en la primera página no tiene que salir ni "Primero" ni "Anterior" igual en la última con "Siguiente" y "último".

Si alguien sabe como hacerlo...

Muchas gracias
  #10 (permalink)  
Antiguo 27/06/2011, 10:44
Avatar de AWesker  
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 27
Respuesta: Paginacionn del gridview.

Quizá ya hayás probado esto, pero no esta de más escribirlo:
<asp:Gridview Id="ABC" runat="server" PagerSettings-NextPageText="Siguiente" PagerSettings-LastPageText="Último"> bla, bla, bla...

En negrita está lo que, supongo va a ayudarte. Nos comentas.

Saludos...
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 03:07.