Hace unos días, escribí sobre <<Implementación de paginación en procedimientos almacenados>> y <<Explicación detallada de los eventos de control de GridView>>. Más tarde, algunas personas me preguntaron cómo aplicar esto en GridView. De hecho, ¡es muy simple! , principalmente cómo Hay un problema al guardar el número de página PageIndex de la página actual, pero todo es más fácil de resolver. Porque en el proceso de paginación: PageSize es cierto, podemos usar un atributo para representarlo. Guarde PageIndex y los datos no son muy grandes. Básicamente, no habrá muchos recursos, como dice un viejo dicho, no importa cuántas palabras se digan, no hay ejemplos que sean intuitivos
. para guardar el PageIndex, que es el número de página actual. Cuando se hace clic en la página anterior, su valor disminuirá. Primero, se sabe que es 0. Una cosa a tener en cuenta es que el número de página de la primera página aquí es 0. en lugar de 1. ¡Echemos un vistazo al código y luego lo analizaremos!
1<asp:GridView ID="NewsGrid" runat="servidor" AutoGenerateColumns="False" AllowPaging="false" Ancho="100%">
2 <Columnas>
3 <asp:BoundField DataField="Noticias" HeaderText="Noticias"/>
4 <asp:HyperLinkField DataNavigateUrlFields="NewsId" DataNavigateUrlFormatString="~/Details.aspx?ID={0}"
5 DataTextField="Título" HeaderText="Título de la noticia" ItemStyle-Width="70%"/>
6 <asp:BoundField DataField="Hora de publicación" HeaderText="Hora de publicación"/>
7 <asp:CommandField HeaderText="Gestión de noticias" ShowCancelButton="False" ShowDeleteButton="True"
8 Mostrar botón Editar="Verdadero"/>
9 </Columnas>
10</asp:GridView>
11 <div style=" altura:16px; padding-top:5px; margen-derecho:30px; float:derecho">
12 <asp:HiddenField ID="Página actual" runat="servidor" Valor="0"/>
13 <asp:LinkButton ID="Primero" runat="servidor" CommandArgument="primero" OnClick="PagerButton_Click">Inicio</asp:LinkButton>
14 <asp:LinkButton ID="Prev" runat="servidor" CommandArgument="prev" OnClick="PagerButton_Click">Página anterior</asp:LinkButton>
15 <asp:LinkButton ID="Siguiente" runat="servidor" CommandArgument="siguiente" OnClick="PagerButton_Click">Página siguiente</asp:LinkButton>
16 <asp:LinkButton ID="Last" runat="server" CommandArgument="last" OnClick="PagerButton_Click">Última página</asp:LinkButton>
17 </div> Código en el archivo CS:
1 PagerButton_Click vacío protegido (remitente del objeto, EventArgs e)
2 {
3 int pageIndx = Convert.ToInt32(CurrentPage.Value);
4 totales int = NewsManager.GetNews(0, pageSize).TotalRecords;
5 int páginas = (totales % tamaño de página) == 0 (totales / tamaño de página): (totales / tamaño de página + 1);
6 cadena arg = ((LinkButton)remitente).CommandArgument.ToString().ToLower();
7 interruptor (arg)
8 {
9 caso "anterior":
10 si (índice de página > 0)
11 {
12 índice de página -= 1;
13}
14 descanso;
15 caso "siguiente":
16 si (pageIndx < páginas - 1)
17 {
18 índice de página += 1;
19}
20 descanso;
21 caso "último":
22 pageIndx = páginas - 1;
23 descanso;
24predeterminado:
25 índice de página = 0;
26 descanso;
27}
28 CurrentPage.Value = pageIndx.ToString();
29 NewsGrid.DataSource = NewsManager.GetNews(pageIndx, pageSize).Entidades;
30 NoticiasGrid.DataBind();
31}
¿No es muy simple? Lo entenderás después de leer el código. No entraré en detalles sobre el uso de botones para pasar parámetros. En <<La clase de entidad de aplicación EntitySet implementa funciones genéricas similares>. > aquí se puede encontrar en los artículos
http://www.cnblogs.com/xdotnet/archive/2006/09/29/gridview_paging_myself.html