Há alguns dias, escrevi sobre <<Implementação de paginação em procedimentos armazenados>> e <<Explicação detalhada dos eventos de controle do GridView>> Mais tarde, algumas pessoas me perguntaram como aplicar essas coisas no GridView, é muito simples! , principalmente como Há um problema ao salvar o número da página PageIndex da página atual, mas tudo é mais fácil de resolver Porque no processo de paginação: PageSize é certo, podemos usar um atributo para representá-lo. salve o PageIndex e os dados não serão muito grandes. Basicamente, não haverá muitos recursos, como diz um velho ditado, não importa quantas palavras sejam ditas, não há exemplos que sejam intuitivos
. para salvar o PageIndex, que é o número da página atual. Quando a página anterior é clicada, seu valor será decrementado. Primeiro, sabe-se que é 0. Uma coisa a notar é que o número da página da primeira página aqui é 0. em vez de 1. Vamos dar uma olhada no código e depois analisá-lo!
1<asp:GridView ID="NewsGrid" runat="server" AutoGenerateColumns="False" AllowPaging="false" Width="100%">
2 <Colunas>
3 <asp:BoundField DataField="NewsId" HeaderText="NewsID"/>
4 <asp:HyperLinkField DataNavigateUrlFields="NewsId" DataNavigateUrlFormatString="~/Details.aspx?ID={0}"
5 DataTextField="Título" HeaderText="Título da notícia" ItemStyle-Width="70%"/>
6 <asp:BoundField DataField="PostTime" HeaderText="Post Time"/>
7 <asp:CommandField HeaderText="Gerenciamento de Notícias" ShowCancelButton="False" ShowDeleteButton="True"
8ShowEditButton="True"/>
9 </Colunas>
10 </asp:GridView>
11 <div style=" height:16px; padding-top:5px; margin-right:30px; float:right">
12 <asp:HiddenField ID="CurrentPage" runat="servidor" Valor="0"/>
13 <asp:LinkButton ID="First" runat="server" CommandArgument="first" OnClick="PagerButton_Click">Home</asp:LinkButton>
14 <asp:LinkButton ID="Prev" runat="server" CommandArgument="prev" OnClick="PagerButton_Click">Página anterior</asp:LinkButton>
15 <asp:LinkButton ID="Next" runat="server" CommandArgument="next" OnClick="PagerButton_Click">Próxima página</asp:LinkButton>
16 <asp:LinkButton ID="Last" runat="server" CommandArgument="last" OnClick="PagerButton_Click">Última página</asp:LinkButton>
17 </div> Código no arquivo CS:
1 PagerButton_Click nulo protegido (remetente do objeto, EventArgs e)
2 {
3 int pageIndx = Convert.ToInt32(CurrentPage.Value);
4 totais int = NewsManager.GetNews(0, pageSize).TotalRecords;
5 páginas int = (totais% pageSize) == 0? (totais / pageSize): (totais / pageSize + 1);
6 string arg = ((LinkButton)sender).CommandArgument.ToString().ToLower();
7 interruptor (argumento)
8 {
9 caso "anterior":
10 se (pageIndx > 0)
11 {
12 pageIndx -= 1;
13}
14 pausa;
15 caso "próximo":
16 if (pageIndx <páginas - 1)
17 {
18 pageIndx += 1;
19}
20 pausas;
21 caso "último":
22 pageIndx = páginas - 1;
23 pausa;
24 padrão:
25 pageIndx = 0;
26 pausa;
27}
28 CurrentPage.Value = pageIndx.ToString();
29 NewsGrid.DataSource = NewsManager.GetNews(pageIndx, pageSize).Entidades;
30 NewsGrid.DataBind();
31}
Não é muito simples? Você entenderá depois de ler o código. Não entrarei em detalhes aqui sobre o uso de botões para passar parâmetros. Em <<A classe de entidade do aplicativo EntitySet implementa funções genéricas semelhantes>. > aqui pode ser encontrado em artigos
http://www.cnblogs.com/xdotnet/archive/2006/09/29/gridview_paging_myself.html