Ide implementasinya sama dengan ekspor Excel dan Word di atas, yaitu menambahkan baris di GridView. Pertama, deklarasikan kontrol berikut untuk menampilkan nomor halaman: halaman mana, total berapa halaman, berapa record, halaman beranda , halaman sebelumnya, berikutnya Satu halaman, halaman terakhir mengontrol paging
Label lblHalaman Saat Ini;
Label lblPageCount;
Label lblRowsCount;
LinkButton btnPertama;
LinkButton btnSebelumnya;
LinkButton btnBerikutnya;
LinkButton btnLast; Dalam metode OnInit GridView, inisialisasi kontrol ini. Inisialisasi kontrol paging dalam metode kontrol Oninit.
penggantian terproteksi void OnInit(EventArgs e)
{
this.EnableViewState = benar;
lblCurrentPage = Label baru();
lblCurrentPage.ForeColor = ColorTranslator.FromHtml("#e78a29");
lblCurrentPage.Teks = "1";
lblPageCount = Label baru();
lblPageCount.Teks = "1";
lblRowsCount = Label baru();
lblRowsCount.ForeColor = ColorTranslator.FromHtml("#e78a29");
btnFirst = new LinkButton();
btnFirst.Text = "Beranda";
btnFirst.Command += CommandEventHandler baru(NavigateToPage);
btnFirst.CommandName = "Page";
btnFirst.CommandArgument = "Pertama";
btnPrev = new LinkButton();
btnPrev.Text = "Halaman sebelumnya";
btnPrev.Command += CommandEventHandler baru(NavigateToPage);
btnPrev.CommandName = "Page";
btnPrev.CommandArgument = "Sebelumnya";
btnBerikutnya = LinkButton baru();
btnNext.Text = "Halaman berikutnya";
btnNext.Command += CommandEventHandler baru(NavigateToPage);
btnNext.CommandName = "Pager";
btnNext.CommandArgument = "Berikutnya";
btnLast = new LinkButton();
btnLast.Text = "Halaman terakhir";
btnLast.Command += CommandEventHandler baru(NavigateToPage);
btnLast.CommandName = "Page";
btnLast.CommandArgument = "Terakhir";
base.OnInit(e);
}
Lalu bagian penting dari kode ini adalah bagaimana menambahkan kontrol-kontrol ini ke GridView dengan membuat sub-kontrol, sebagai berikut:
Tambahkan kontrol halaman dalam metode pembuatan kontrol anak
penggantian yang dilindungi int CreateChildControls(System.Collections.IEnumerable dataSource, bool dataBinding)
{
int res = base.CreateChildControls(dataSource, dataBinding);
jika(TampilkanToolBar)
{
mencoba
{
Baris GridViewRow = GridViewRow baru(0, 0, DataControlRowType.Pager, DataControlRowState.Normal);
TableCell c = TableCell baru();
c.Lebar = Satuan.Persentase(100);
c.ColumnSpan = ini.Columns.Count;
baris.Sel.Tambahkan(c);
TableCell sel1 = TableCell baru();
Tabel tabel = Tabel baru();
TableRow r = TableRow baru();
tabel.Baris.Tambahkan(r);
tabel.Lebar = Satuan.Persentase(100);
c.Kontrol.Tambahkan(tabel);
r.Sel.Tambahkan(sel1);
Literal l1 = Literal baru();
l1.Teks = "Halaman:";
sel1.Kontrol.Tambahkan(l1);
sel1.Bungkus = salah;
sel1.Kontrol.Tambahkan(lblCurrentPage);
l1 = Literal baru();
l1.Teks = "Halaman/";
sel1.Kontrol.Tambahkan(l1);
sel1.Kontrol.Tambahkan(lblPageCount);
l1 = Literal baru();
l1.Teks = "Halaman, jumlah";
sel1.Kontrol.Tambahkan(l1);
sel1.Kontrol.Tambahkan(lblRowsCount);
l1 = Literal baru();
l1.Teks = "catatan";
cell1.HorizontalAlign = HorizontalAlign.Kiri;
sel1.Kontrol.Tambahkan(l1);
TableCell sel2 = TableCell baru();
cell2.HorizontalAlign = HorizontalAlign.Kanan;
sel2.Bungkus = salah;
l1 = Literal baru();
l1.Teks = "[";
sel2.Kontrol.Tambahkan(l1);
sel2.Kontrol.Tambahkan(btnPertama);
l1 = Literal baru();
l1.Teks = "] ";
sel2.Kontrol.Tambahkan(l1);
l1 = Literal baru();
l1.Teks = "[";
sel2.Kontrol.Tambahkan(l1);
sel2.Kontrol.Tambahkan(btnPrev);
l1 = Literal baru();
l1.Teks = "] ";
sel2.Kontrol.Tambahkan(l1);
l1 = Literal baru();
l1.Teks = "[";
sel2.Kontrol.Tambahkan(l1);
sel2.Kontrol.Tambahkan(btnBerikutnya);
l1 = Literal baru();
l1.Teks = "] ";
sel2.Kontrol.Tambahkan(l1);
l1 = Literal baru();
l1.Teks = "[";
sel2.Kontrol.Tambahkan(l1);
sel2.Kontrol.Tambahkan(btnTerakhir);
l1 = Literal baru();
l1.Teks = "] ";
sel2.Kontrol.Tambahkan(l1);
r.Sel.Tambahkan(sel2);
this.Controls[0].Controls.AddAt(0, baris);
}
menangkap
{
}
}
kembalikan res;
}Berikut ini adalah event yang menangani paging, mirip dengan RowCommand
public void NavigateToPage(pengirim objek, CommandEventArgs e)
{
btnFirst.Enabled = benar;
btnPrev.Enabled = benar;
btnNext.Enabled = benar;
btnLast.Enabled = benar;
beralih (e.CommandArgument.ToString())
{
kasus "Sebelumnya":
jika (ini.PageIndex > 0)
{
ini.Indeks Halaman -= 1
;
merusak;
kasus "Berikutnya":
jika (ini.PageIndex < (ini.PageCount - 1))
{
ini.Indeks Halaman += 1
;
merusak;
kasus "Pertama":
ini.Indeks Halaman = 0;
merusak;
kasus "Terakhir":
this.PageIndex = ini.PageCount - 1;
merusak;
}
jika (ini.PageIndex == 0)
{
btnPertama.Diaktifkan = false;
btnPrev.Enabled = false;
jika (ini.PageCount == 1)
{
btnLast.Enabled = false;
btnNext.Enabled = false;
}
}
lain jika (ini.PageIndex == ini.PageCount - 1)
{
btnLast.Enabled = false;
btnNext.Enabled = false;
}
OnBind();
}Dengan cara ini, paging yang dipersonalisasi dapat dengan mudah diwujudkan.