Vor ein paar Tagen habe ich über <<Implementieren von Paging in gespeicherten Prozeduren>> und <<Ausführliche Erklärung von GridView-Steuerereignissen>> geschrieben. Später fragten mich einige Leute, wie man dieses Zeug in GridView anwendet Es gibt hauptsächlich ein Problem mit dem Speichern der Seitennummer PageIndex der aktuellen Seite, aber alles ist einfacher zu lösen, da PageSize sicher ist, dass wir ein Attribut verwenden können, um es darzustellen Speichern Sie PageIndex, und die Daten sind nicht sehr groß. Wie ein altes Sprichwort sagt, gibt es keine Beispiele, die intuitiv
sind Um den PageIndex zu speichern, der die aktuelle Seitennummer ist, wird der Wert zunächst auf 0 verringert. Zu beachten ist, dass die Seitennummer der ersten Seite hier 0 ist statt 1. Schauen wir uns den Code an und analysieren ihn dann!
1<asp:GridView ID="NewsGrid" runat="server" AutoGenerateColumns="False" AllowPaging="false" Width="100%">
2 <Spalten>
3 <asp:BoundField DataField="NewsId" HeaderText="NewsID"/>
4 <asp:HyperLinkField DataNavigateUrlFields="NewsId" DataNavigateUrlFormatString="~/Details.aspx?ID={0}"
5 DataTextField="Title" HeaderText="News Title" ItemStyle-Width="70%"/>
6 <asp:BoundField DataField="PostTime" HeaderText="Post Time"/>
7 <asp:CommandField HeaderText="News Management" ShowCancelButton="False" ShowDeleteButton="True"
8 ShowEditButton="True"/>
9 </Spalten>
10 </asp:GridView>
11 <div style=" height:16px; padding-top:5px; margin-right:30px; float:right">
12 <asp:HiddenField ID="CurrentPage" runat="server" Value="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">Vorherige Seite</asp:LinkButton>
15 <asp:LinkButton ID="Next" runat="server" CommandArgument="next" OnClick="PagerButton_Click">Nächste Seite</asp:LinkButton>
16 <asp:LinkButton ID="Last" runat="server" CommandArgument="last" OnClick="PagerButton_Click">Letzte Seite</asp:LinkButton>
17 </div> Code in CS-Datei:
1 protected void PagerButton_Click(object sender, EventArgs e)
2 {
3 int pageIndx = Convert.ToInt32(CurrentPage.Value);
4 int totals = NewsManager.GetNews(0, pageSize).TotalRecords;
5 int seiten = (totals % pageSize) == 0 ? (totals / pageSize) : (totals / pageSize + 1);
6 string arg = ((LinkButton)sender).CommandArgument.ToString().ToLower();
7 Schalter (arg)
8 {
9 Fall „vorher“:
10 if (pageIndx > 0)
11 {
12 pageIndx -= 1;
13}
14 Pause;
15 Fall „nächster“:
16 if (pageIndx < Seiten - 1)
17 {
18 pageIndx += 1;
19}
20 Pause;
21 Fall „letzter“:
22 pageIndx = Seiten - 1;
23 Pause;
24Standard:
25 pageIndx = 0;
26 Pause;
27}
28 CurrentPage.Value = pageIndx.ToString();
29 NewsGrid.DataSource = NewsManager.GetNews(pageIndx, pageSize).Entities;
30 NewsGrid.DataBind();
31}
Ist es nicht sehr einfach? Nachdem Sie den Code gelesen haben, werde ich hier nicht näher auf die Verwendung von Schaltflächen zum Übergeben von Parametern eingehen. Es gibt auch das Entities-Attribut > hier finden Sie in Artikeln
http://www.cnblogs.com/xdotnet/archive/2006/09/29/gridview_paging_myself.html