![]() |
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. |
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%"> Catálogo de Productos</td> </table> <table cellSpacing="0" cellPadding="0" width="100%" border="0"> <tr > <td> </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%"> </td> <td width="55%"> </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 |
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. |
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. |
Re: Paginacionn del gridview. Me uno al pedido..... |
Respuesta: Paginacionn del gridview. Hola Ojal a te sirva este link: http://netcodigo.webinfo.es/2007/12/03/paginar-gridview-como-google-analytics/ |
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 |
Respuesta: Paginacionn del gridview. Cita:
Espero que te ayude Suerte ^^ http://www.youtube.com/watch?v=k6XJ9BH0rNk |
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 |
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... |
| La zona horaria es GMT -6. Ahora son las 06:41. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.