Sumber: kolom snooker_li.
Saya baru-baru ini membuat program album foto yang sering membutuhkan paging, jadi saya ingin menulis kontrol pengguna.
Kodenya adalah sebagai berikut:
AutoPage.ascx page
<%@ Control Language="c#" AutoEventWireup="false" Codebehind="AutoPage.ascx.cs" Inherits="album.AutoPage" TargetSchema=" http://schemas.microsoft .com/intelisense/ie5 " %>
<tabel border="0" cellpadding="0" Cellspacing="0">
<tr>
<td valign="middle" height="30">Total <asp:label id="lb_ItemCount" ForeColor="Red" runat="server"></asp:label> catatan </td>
<td valign="middle" height="30"><asp:hyperlink id="hpl_First" runat="server">Beranda</asp:hyperlink> </td>
<td valign="middle" height="30"><asp:hyperlink id="hpl_Prev" runat="server">Halaman sebelumnya</asp:hyperlink> </td>
<td valign="middle" height="30">Halaman/total<asp:label id="lb_CurrentPage" runat="server"></asp:label>saat ini/total<asp:label id="lb_PageCount" runat=" server"></asp:label>halaman </td>
<td valign="middle" height="30"><asp:hyperlink id="hpl_Next" runat="server">Halaman selanjutnya</asp:hyperlink> </td>
<td valign="middle" height="30"><asp:hyperlink id="hpl_Last" runat="server">Halaman terakhir</asp:hyperlink> </td>
<td valign = "middle" height = "30"><asp:textbox id = "txb_Page" runat = "server" Lebar = 32px" BorderStyle = "Solid" BorderWidth = "1px"
BorderColor="Perak"></asp:kotakteks></td>
<td valign="middle" height="30"><asp:ImageButton id="btn_go" runat="server" ImageUrl="album_images/go.gif"></asp:ImageButton></td>
<td valign="middle" height="30"><asp:label id="lb_url" runat="server" Visible="False"></asp:label><asp:Label id="lb_Params" runat= "server" Terlihat="False"></asp:Label></td>
</tr>
</table>
Album ruang nama
halaman AutoPage.ascx.cs
{
menggunakan Sistem;
menggunakan Sistem.Data;
menggunakan Sistem.Gambar;
menggunakan Sistem.Web;
menggunakan Sistem.Web.UI.WebControls;
menggunakan Sistem.Web.UI.HtmlControls;
menggunakan Sistem.Data.SqlClient;
/// <ringkasan>
/// Ringkasan deskripsi UC.
/// </ringkasan>
Halaman Otomatis kelas publik : System.Web.UI.UserControl
{
dilindungi Sistem.Web.UI.WebControls.HyperLink hpl_First;
dilindungi Sistem.Web.UI.WebControls.HyperLink hpl_Prev;
dilindungi Sistem.Web.UI.WebControls.HyperLink hpl_Next;
dilindungi Sistem.Web.UI.WebControls.Label lb_CurrentPage;
dilindungi Sistem.Web.UI.WebControls.Label lb_PageCount;
dilindungi Sistem.Web.UI.WebControls.HyperLink hpl_Last;
ukuran halaman int publik;
string publik PageP;
dilindungi System.Web.UI.WebControls.TextBox txb_Page;
dilindungi Sistem.Web.UI.WebControls.Label lb_url;
dilindungi Sistem.Web.UI.WebControls.Label lb_ItemCount;
url string publik;
dilindungi Sistem.Web.UI.WebControls.Label lb_Params;
dilindungi System.Web.UI.WebControls.ImageButton btn_go;
Params string publik;
private void Page_Load (pengirim objek, System.EventArgs e)
{
}
kumpulan data PagedDataSource publik (DataTable dt)
{
lb_url.Teks = url;
lb_Params.Text = Param;
//Buat kelas paging
PagedDataSource objPage = PagedDataSource baru();
//Setel sumber data
objPage.DataSource = dt.DefaultView;
//Izinkan paging
objPage.AllowPaging = benar;
//Mengatur jumlah item yang ditampilkan pada setiap halaman
objPage.PageSize = ukuran halaman;
//Atur indeks halaman saat ini
int Halaman Curah=1;
mencoba
{
CurPage = Konversi.ToInt32(PageP);
if (CurPage<1 || CurPage>objPage.PageCount)
{
Respon.Redirect(url+"?page=1"+Params);
}
}
menangkap
{
Respon.Redirect(url+"?page=1"+Params);
}
objPage.CurrentPageIndex = CurPage-1;
//Menampilkan informasi status
lb_ItemCount.Teks = dt.Rows.Count.ToString();
lb_CurrentPage.Text = CurPage.ToString();
lb_PageCount.Teks =objPage.PageCount.ToString();
//Jika halaman saat ini bukan halaman beranda
jika (!objPage.IsFirstPage)
{
hpl_Prev.NavigateUrl=url + "?Page=" + Convert.ToString(CurPage-1)+Params;
hpl_First.NavigateUrl=url + "?Page=1"+Params;
}
//Jika halaman saat ini bukan halaman terakhir
if (!objPage.IsLastPage)
{
hpl_Next.NavigateUrl=url+ "?Page=" + Convert.ToString(CurPage+1)+Params;
hpl_Last.NavigateUrl=url + "?Page=" +objPage.PageCount.ToString()+Params;
}
kembalikan halaman objek;
}
#region Kode yang Dihasilkan Perancang Formulir Web
ganti void OnInit yang dilindungi (EventArgs e)
{
//
// CODEGEN: Panggilan ini diperlukan oleh perancang Formulir Web ASP.NET.
//
Inisialisasi Komponen();
base.OnInit(e);
}
/// <ringkasan>
/// Desainer mendukung metode yang diperlukan - jangan gunakan editor kode
/// Ubah konten metode ini.
/// </ringkasan>
kekosongan pribadi InitializeComponent()
{
this.btn_go.Click += Sistem.Web.UI.ImageClickEventHandler baru(ini.btn_go_Click);
ini.Muat += Sistem baru.EventHandler(ini.Page_Load)
;
#endregion
private void btn_go_Click(pengirim objek, System.Web.UI.ImageClickEventArgs e)
{
Response.Redirect(lb_url.Text+"?Page="+txb_Page.Text+lb_Params.Text);
}
}
}
memanggil
, Anda perlu mengatur beberapa parameter ukuran halaman (jumlah data yang ditampilkan pada setiap halaman), PageP (parameter paging yang diteruskan), ParmP (parameter Request.QureyString lainnya), dan url (alamat halaman).
perlu mengikat kontrol DataSource=AutoPage1.databind(variabel DataTable)