المصدر: عمود snooker_li
لقد قمت مؤخرًا بإنشاء برنامج ألبوم صور يتطلب الترحيل بشكل متكرر، لذلك أردت كتابة عنصر تحكم للمستخدم.
التعليمات البرمجية كما يلي:
صفحة AutoPage.ascx
<%@ Control Language = "c#" AutoEventWireup = "false" Codebehind = "AutoPage.ascx.cs" Inherits = "album.AutoPage" TargetSchema = " http://schemas.microsoft .com/ intellisense/ie5 " %>
<حدود الجدول = "0" خلية الحشو = "0" تباعد الخلايا = "0">
<تر>
<td valign="middle" height="30">إجمالي <asp:label id="lb_ItemCount" ForeColor="Red" runat="server"></asp:label> السجلات </td>
<td valign="middle" height="30"><asp:hyperlink id="hpl_First" runat="server">الصفحة الرئيسية</asp:hyperlink> </td>
<td valign="middle" height="30"><asp:hyperlink id="hpl_Prev" runat="server">الصفحة السابقة</asp:hyperlink> </td>
<td valign="middle" height="30">الحالي<asp:label id="lb_CurrentPage" runat="server"></asp:label>الصفحات/الإجمالي<asp:label id="lb_PageCount" runat=" الخادم"></asp:label>الصفحة </td>
<td valign="middle" height="30"><asp:hyperlink id="hpl_Next" runat="server">الصفحة التالية</asp:hyperlink> </td>
<td valign="middle" height="30"><asp:hyperlink id="hpl_Last" runat="server">الصفحة الأخيرة</asp:hyperlink> </td>
<td valign = "middle" height = "30"> <asp:textbox id = "txb_Page" runat = "server" Width = "32px" BorderStyle = "Solid" BorderWidth = "1px"
BorderColor="Silver"></asp:textbox></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= "الخادم" مرئي = "False"></asp:Label></td>
</tr>
</table>
ألبوم مساحة اسم
الصفحة AutoPage.ascx.cs
{
باستخدام النظام؛
باستخدام System.Data؛
باستخدام System.Drawing؛
باستخدام System.Web؛
باستخدام System.Web.UI.WebControls؛
باستخدام System.Web.UI.HtmlControls؛
باستخدام System.Data.SqlClient
/// <summary>
/// وصف موجز لجامعة كاليفورنيا.
/// </الملخص>
الصفحة التلقائية للفئة العامة: System.Web.UI.UserControl
{
محمية System.Web.UI.WebControls.HyperLink hpl_First;
محمية System.Web.UI.WebControls.HyperLink hpl_Prev;
محمية System.Web.UI.WebControls.HyperLink hpl_Next;
محمية System.Web.UI.WebControls.Label lb_CurrentPage;
محمية System.Web.UI.WebControls.Label lb_PageCount;
محمية System.Web.UI.WebControls.HyperLink hpl_Last;
حجم الصفحات العام؛
سلسلة عامة PageP؛
محمية System.Web.UI.WebControls.TextBox txb_Page؛
System.Web.UI.WebControls.Label lb_url محمي؛
محمية System.Web.UI.WebControls.Label lb_ItemCount;
عنوان URL للسلسلة العامة؛
محمية System.Web.UI.WebControls.Label lb_Params;
محمية System.Web.UI.WebControls.ImageButton btn_go؛
معلمات السلسلة العامة؛
Page_Load باطلة خاصة (مرسل الكائن، System.EventArgs e)
{
}
ربط بيانات PagedDataSource العام (DataTable dt)
{
lb_url.Text = url;
lb_Params.Text = Params;
// إنشاء فئة الترحيل
PagedDataSource objPage = new PagedDataSource();
// تعيين مصدر البيانات
objPage.DataSource = dt.DefaultView;
// السماح بالترحيل
objPage.AllowPaging = true;
// قم بتعيين عدد العناصر المعروضة في كل صفحة
objPage.PageSize =pagesize;
// قم بتعيين فهرس الصفحة الحالية
int CurPage=1;
يحاول
{
CurPage = Convert.ToInt32(PageP);
إذا (CurPage<1 || CurPage>objPage.PageCount)
{
Response.Redirect(url+"?page=1"+Params);
}
}
يمسك
{
Response.Redirect(url+"?page=1"+Params);
}
objPage.CurrentPageIndex = CurPage-1;
// عرض معلومات الحالة
lb_ItemCount.Text = dt.Rows.Count.ToString();
lb_CurrentPage.Text = CurPage.ToString();
lb_PageCount.Text =objPage.PageCount.ToString();
// إذا كانت الصفحة الحالية ليست الصفحة الرئيسية
إذا (!objPage.IsFirstPage)
{
hpl_Prev.NavigateUrl=url + "?Page=" + Convert.ToString(CurPage-1)+Params;
hpl_First.NavigateUrl=url + "?Page=1"+Params;
}
// إذا كانت الصفحة الحالية ليست الصفحة الأخيرة
إذا (!objPage.IsLastPage)
{
hpl_Next.NavigateUrl=url+ "?Page=" + Convert.ToString(CurPage+1)+Params;
hpl_Last.NavigateUrl=url + "?Page=" +objPage.PageCount.ToString()+Params;
}
إرجاع صفحة الكائن؛
}
#region رمز تم إنشاؤه بواسطة مصمم نماذج الويب
تجاوز OnInit المحمي باطلة (EventArgs e)
{
//
// CODEGEN: هذا الاستدعاء مطلوب من قبل مصمم نماذج ويب ASP.NET.
//
InitializeComponent();
base.OnInit(e);
}
/// <الملخص>
/// يدعم المصمم الطرق المطلوبة - لا تستخدم محرر التعليمات البرمجية
/// تعديل محتوى هذه الطريقة.
/// </الملخص>
الفراغ الخاص ()InitializeComponent
{
this.btn_go.Click += new System.Web.UI.ImageClickEventHandler(this.btn_go_Click);
this.Load += new System.EventHandler(this.Page_Load })
;
#endregion
public void btn_go_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
Response.Redirect(lb_url.Text+"?Page="+txb_Page.Text+lb_Params.Text);
}
}
}
عند الاتصال، تحتاج إلى تعيين عدة معلمات pagesize (عدد البيانات المعروضة في كل صفحة)، PageP (معلمات الترحيل التي تم تمريرها)، ParmP (معلمات Request.QureyString الأخرى)، وURL (عنوان الصفحة)
، أنت فقط بحاجة إلى ربط عنصر التحكم DataSource=AutoPage1.databind(متغير DataTable)