Die Implementierungsidee ist dieselbe wie beim Excel- und Word-Export oben, nämlich das Hinzufügen von Zeilen in der GridView. Deklarieren Sie zunächst die folgenden Steuerelemente, um die Seitenzahl anzuzeigen: welche Seite, wie viele Seiten insgesamt, wie viele Datensätze, Startseite , Vorherige Seite, Nächste Eine Seite, Letzte Seite steuert das Blättern
Label lblCurrentPage;
Label lblPageCount;
Label lblRowsCount;
LinkButton btnFirst;
LinkButton btnPrev;
LinkButton btnNext;
LinkButton btnLast; Initialisieren Sie diese Steuerelemente in der Oninit-Methode des Steuerelements.
protected override 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.Text = "Homepage";
btnFirst.Command += new CommandEventHandler(NavigateToPage);
btnFirst.CommandName = "Pager";
btnFirst.CommandArgument = "First";
btnPrev = new LinkButton();
btnPrev.Text = "Vorherige Seite";
btnPrev.Command += new CommandEventHandler(NavigateToPage);
btnPrev.CommandName = "Pager";
btnPrev.CommandArgument = "Prev";
btnNext = new LinkButton();
btnNext.Text = "Nächste Seite";
btnNext.Command += new CommandEventHandler(NavigateToPage);
btnNext.CommandName = "Pager";
btnNext.CommandArgument = "Next";
btnLast = new LinkButton();
btnLast.Text = "Letzte Seite";
btnLast.Command += new CommandEventHandler(NavigateToPage);
btnLast.CommandName = "Pager";
btnLast.CommandArgument = "Last";
base.OnInit(e);
}
Dann ist der Schlüsselteil des Codes, wie man diese Steuerelemente zur GridView hinzufügt, indem man Untersteuerelemente wie folgt erstellt:
Fügen Sie Paging-Steuerelemente in die Methode zum Erstellen untergeordneter Steuerelemente ein
protected override int CreateChildControls(System.Collections.IEnumerable dataSource, bool dataBinding)
{
int res = base.CreateChildControls(dataSource, dataBinding);
if(ShowToolBar)
{
versuchen
{
GridViewRow row = new GridViewRow(0, 0, DataControlRowType.Pager, DataControlRowState.Normal);
TableCell c = new TableCell();
c.Width = Unit.Percentage(100);
c.ColumnSpan = this.Columns.Count;
row.Cells.Add(c);
TableCell cell1 = new TableCell();
Tabelle table = new Table();
TableRow r = new TableRow();
table.Rows.Add(r);
table.Width = Unit.Percentage(100);
c.Controls.Add(table);
r.Cells.Add(cell1);
Literal l1 = neues Literal();
l1.Text = "Seite:";
cell1.Controls.Add(l1);
cell1.Wrap = false;
cell1.Controls.Add(lblCurrentPage);
l1 = neues Literal();
l1.Text = "Seite/";
cell1.Controls.Add(l1);
cell1.Controls.Add(lblPageCount);
l1 = neues Literal();
l1.Text = "Seite, gesamt";
cell1.Controls.Add(l1);
cell1.Controls.Add(lblRowsCount);
l1 = neues Literal();
l1.Text = "record";
cell1.HorizontalAlign = HorizontalAlign.Left;
cell1.Controls.Add(l1);
TableCell cell2 = new TableCell();
cell2.HorizontalAlign = HorizontalAlign.Right;
cell2.Wrap = false;
l1 = neues Literal();
l1.Text = "[";
cell2.Controls.Add(l1);
cell2.Controls.Add(btnFirst);
l1 = neues Literal();
l1.Text = "] ";
cell2.Controls.Add(l1);
l1 = new Literal();
l1.Text = "[";
cell2.Controls.Add(l1);
cell2.Controls.Add(btnPrev);
l1 = neues Literal();
l1.Text = "] ";
cell2.Controls.Add(l1);
l1 = new Literal();
l1.Text = "[";
cell2.Controls.Add(l1);
cell2.Controls.Add(btnNext);
l1 = neues Literal();
l1.Text = "] ";
cell2.Controls.Add(l1);
l1 = new Literal();
l1.Text = "[";
cell2.Controls.Add(l1);
cell2.Controls.Add(btnLast);
l1 = neues Literal();
l1.Text = "] ";
cell2.Controls.Add(l1);
r.Cells.Add(cell2);
this.Controls[0].Controls.AddAt(0, row);
}
fangen
{
}
}
res zurückgeben;
}Das Folgende ist das Ereignis, das das Paging verarbeitet, ähnlich wie RowCommand
public void NavigateToPage(object sender, CommandEventArgs e)
{
btnFirst.Enabled = true;
btnPrev.Enabled = true;
btnNext.Enabled = true;
btnLast.Enabled = true;
Schalter (e.CommandArgument.ToString())
{
Fall „Vorher“:
if (this.PageIndex > 0)
{
this.PageIndex -= 1
;
brechen;
Fall „Weiter“:
if (this.PageIndex < (this.PageCount - 1))
{
this.PageIndex += 1
;
brechen;
Fall „Erster“:
this.PageIndex = 0;
brechen;
Fall „Letzter“:
this.PageIndex = this.PageCount - 1;
brechen;
}
if (this.PageIndex == 0)
{
btnFirst.Enabled = false;
btnPrev.Enabled = false;
if (this.PageCount == 1)
{
btnLast.Enabled = false;
btnNext.Enabled = false;
}
}
sonst wenn (this.PageIndex == this.PageCount - 1)
{
btnLast.Enabled = false;
btnNext.Enabled = false;
}
OnBind();
}Auf diese Weise lässt sich ganz einfach ein personalisiertes Paging realisieren. Willkommen bei uns.