L'idée d'implémentation est la même que pour l'export Excel et Word ci-dessus, qui consiste à ajouter des lignes dans le GridView. Tout d'abord, déclarez les contrôles suivants pour afficher le numéro de page : quelle page, combien de pages au total, combien d'enregistrements, page d'accueil. , page précédente, suivante Une page, dernière page contrôles pour la pagination
Étiquette lblCurrentPage ;
Étiquette lblPageCount ;
Étiquette lblRowsCount ;
LinkButton btnFirst ;
LinkButton btnPrev ;
LinkButton btnNext ;
LinkButton btnLast; Dans la méthode OnInit de GridView, initialisez ces contrôles. Initialisez le contrôle de pagination dans la méthode Oninit du contrôle.
remplacement protégé void OnInit (EventArgs e)
{
this.EnableViewState = true;
lblCurrentPage = new Label();
lblCurrentPage.ForeColor = ColorTranslator.FromHtml("#e78a29");
lblCurrentPage.Text = "1";
lblPageCount = new Label();
lblPageCount.Text = "1" ;
lblRowsCount = new Label();
lblRowsCount.ForeColor = ColorTranslator.FromHtml("#e78a29");
btnFirst = new LinkButton();
btnFirst.Text = "Page d'accueil";
btnFirst.Command += new CommandEventHandler(NavigateToPage);
btnFirst.CommandName = "Téléavertisseur" ;
btnFirst.CommandArgument = "Premier";
btnPrev = new LinkButton();
btnPrev.Text = "Page précédente";
btnPrev.Command += new CommandEventHandler(NavigateToPage);
btnPrev.CommandName = "Pager" ;
btnPrev.CommandArgument = "Précédent";
btnNext = new LinkButton();
btnNext.Text = "Page suivante";
btnNext.Command += new CommandEventHandler(NavigateToPage);
btnNext.CommandName = "Pageur" ;
btnNext.CommandArgument = "Suivant";
btnLast = new LinkButton();
btnLast.Text = "Dernière page";
btnLast.Command += new CommandEventHandler(NavigateToPage);
btnLast.CommandName = "Pager" ;
btnLast.CommandArgument = "Dernier";
base.OnInit(e);
}
Ensuite, la partie clé du code est de savoir comment ajouter ces contrôles au GridView en créant des sous-contrôles, comme suit :
Ajouter des contrôles de pagination dans la méthode de création de contrôles enfants
remplacement protégé int CreateChildControls (System.Collections.IEnumerable dataSource, bool dataBinding)
{
int res = base.CreateChildControls(dataSource, dataBinding);
si (Afficher la barre d'outils)
{
essayer
{
Ligne GridViewRow = new GridViewRow(0, 0, DataControlRowType.Pager, DataControlRowState.Normal);
TableCell c = new TableCell();
c.Largeur = Unité.Pourcentage (100);
c.ColumnSpan = this.Columns.Count ;
rangée.Cells.Add(c);
TableCell cell1 = new TableCell();
Table table = nouvelle Table();
TableRow r = new TableRow();
table.Rows.Add(r);
table.Width = Unité.Pourcentage (100);
c.Controls.Add(table);
r.Cells.Add(cell1);
Littéral l1 = new Literal();
l1.Texte = "Page :" ;
cell1.Controls.Add(l1);
cell1.Wrap = faux ;
cell1.Controls.Add(lblCurrentPage);
l1 = nouveau littéral();
l1.Texte = "Page/";
cell1.Controls.Add(l1);
cell1.Controls.Add(lblPageCount);
l1 = nouveau littéral();
l1.Text = "Page, total" ;
cell1.Controls.Add(l1);
cell1.Controls.Add(lblRowsCount);
l1 = nouveau littéral();
l1.Text = "enregistrement" ;
cell1.HorizontalAlign = HorizontalAlign.Left;
cell1.Controls.Add(l1);
TableCell cell2 = new TableCell();
cell2.HorizontalAlign = HorizontalAlign.Right;
cell2.Wrap = faux ;
l1 = nouveau littéral();
l1.Texte = "[";
cell2.Controls.Add(l1);
cell2.Controls.Add(btnFirst);
l1 = nouveau littéral();
l1.Texte = "] ";
cell2.Controls.Add(l1);
l1 = new Literal();
l1.Texte = "[";
cell2.Controls.Add(l1);
cell2.Controls.Add(btnPrev);
l1 = nouveau littéral();
l1.Texte = "] ";
cell2.Controls.Add(l1);
l1 = new Literal();
l1.Texte = "[";
cell2.Controls.Add(l1);
cell2.Controls.Add(btnNext);
l1 = nouveau littéral();
l1.Texte = "] ";
cell2.Controls.Add(l1);
l1 = new Literal();
l1.Texte = "[";
cell2.Controls.Add(l1);
cell2.Controls.Add(btnLast);
l1 = nouveau littéral();
l1.Texte = "] ";
cell2.Controls.Add(l1);
r.Cells.Add(cell2);
this.Controls[0].Controls.AddAt(0, ligne);
}
attraper
{
}
}
retourner la résolution ;
}Ce qui suit est l'événement qui gère la pagination, similaire à RowCommand
public void NavigateToPage (expéditeur d'objet, CommandEventArgs e)
{
btnFirst.Enabled = true ;
btnPrev.Enabled = true ;
btnNext.Enabled = true ;
btnLast.Enabled = true ;
commutateur (e.CommandArgument.ToString())
{
cas "Précédent":
si (this.PageIndex > 0)
{
ceci.PageIndex -= 1
;
casser;
cas "Suivant":
si (this.PageIndex < (this.PageCount - 1))
{
ceci.PageIndex += 1
;
casser;
cas "Premier":
this.PageIndex = 0;
casser;
cas "Dernier":
this.PageIndex = this.PageCount - 1;
casser;
}
si (this.PageIndex == 0)
{
btnFirst.Enabled = faux ;
btnPrev.Enabled = faux ;
si (this.PageCount == 1)
{
btnLast.Enabled = faux ;
btnNext.Enabled = faux ;
}
}
sinon si (this.PageIndex == this.PageCount - 1)
{
btnLast.Enabled = faux ;
btnNext.Enabled = faux ;
}
SurBind();
}De cette manière, une pagination personnalisée peut être facilement réalisée. Bienvenue à nous rejoindre.