// ซอร์สโค้ดนี้มีไว้สำหรับการอ้างอิงการเรียนรู้เท่านั้นไม่ใช่เพื่อวัตถุประสงค์ทางการค้าใด ๆ
// หากคุณต้องการแก้ไขและควบคุมการควบคุมใหม่ให้เก็บข้อมูลลิขสิทธิ์ของซอร์สโค้ดที่สมบูรณ์!
// สำหรับข้อมูลเกี่ยวกับการอัพเกรดการควบคุมและข้อมูลการควบคุมใหม่โปรดให้ความสนใจกับ www.webdiyer.com
ใช้ระบบ
ใช้ system.io;
ใช้ System.web;
ใช้ system.web.ui;
ใช้ System.web.ui.webcontrols;
การใช้ System.web.ui.htmlcontrols;
การใช้ System.collections.specialized;
ใช้ System.Text;
ใช้ System.ComponentModel;
ใช้ System.ComponentMol.Design;
ใช้ System.collections;
เนมสเปซ wuqi.webdiyer
-
#REGION ASPNETPAGER Server Control
#คำอธิบายการควบคุมและตัวอย่าง
/// <summary>
/// สำหรับการควบคุมเซิร์ฟเวอร์สำหรับข้อมูลการเพจข้อมูลในแอปพลิเคชันเว็บ ASP.NET
/// </summary>
/// <ข้อเสนอ> ซึ่งแตกต่างจาก DataGrid Control, Aspnetpager Page Control นั้นไม่ได้แสดงข้อมูลใด ๆ แต่แสดงองค์ประกอบการนำทางหน้าเว็บเท่านั้น การควบคุมนี้สามารถทำให้ DataGrid, Datalist, Repeater และ Custom Controls ด้วยขั้นตอนการจัดเก็บ SQL ประสิทธิภาพการเพจได้รับการปรับปรุงอย่างมีนัยสำคัญเมื่อเทียบกับ DataGrid Paging โดยเฉพาะอย่างยิ่งเมื่อจำนวนข้อมูลสามารถเพิ่มขึ้นได้หลายครั้งเมื่อปริมาณข้อมูลเป็น ใหญ่!
/// <p> aspnetpager 2.0 เพิ่มฟังก์ชั่นของการเพจผ่าน URL ซึ่งช่วยให้ผู้เข้าชมป้อน URL ที่เกี่ยวข้องโดยตรงเพื่อเข้าถึงหน้าใด ๆ และเครื่องมือค้นหาสามารถดึงข้อมูลแต่ละหน้าได้โดยตรง </p>
/// <p> ในการใช้การควบคุมเพจ Paging ของ AspNetPager อย่างน้อยก็ต้องระบุแอตทริบิวต์ <ดู cref = "recordCount"/>>> ระบุและเขียนโปรแกรมการประมวลผลของเหตุการณ์ <ดู cref = "pageChanged"/>
/// <ดู cref = "recordcount"/> แอตทริบิวต์ระบุจำนวนทั้งหมดของข้อมูลทั้งหมดที่จะ page ในเพจ
/// ถ้า <ดู cref = "pageChanged"/> โปรแกรมการประมวลผลเหตุการณ์ไม่ได้ระบุและเขียนดังนั้นเมื่อผู้ใช้คลิกองค์ประกอบการนำทางหน้าหรือดัชนีหน้าอินพุตสไตล์มือในกล่องข้อความดัชนีหน้าและส่งหน้า .
/// วิธีการเพจของการควบคุม aspnetpager นั้นเหมือนกับของ dataGrid นั่นคือใน <ดู cref = "pageChanged"/> โปรแกรมการประมวลผลเหตุการณ์ <ดู cref = "pageChangedEventArgs" ของ <ดู cref = cref = "pageChangedEventArgs.newPageIndex"/> ค่าถูกกำหนดให้กับ <ดู cref = "currentPageIndex"/> แอตทริบิวต์ของ <ดู cref = "CurrentPageIndex"/> จากนั้นกลับมาควบคุมข้อมูลและการแสดงข้อมูลใหม่ </p> </lemarks>
/// <except> ตัวอย่างต่อไปนี้แสดงวิธีการใช้ aspnetpager ไปยังหน้า dataGrid
/// <code> <!
/// <%@ page language = "C#"%>
/// <%@ import namespace = "system.data"%>
/// <%@import namespace = "system.data.sqlclient"%>
/// <%@import namespace = "system.configuration"%>
/// <%@register tagprefix = "webDiyer" namespace = "wuqi.webdiyer" แอสเซมบลี = "aspnetpager"%>
/// <html>
/// <head>
/// <title> ยินดีต้อนรับสู่ webdiyer.com </title>
/// <สคริปต์ runat = "เซิร์ฟเวอร์">
/// SQLConnection Conn;
/// sqlcommand cmd;
/// void page_load (Object SRC, EventArgs E)
-
// conn = ใหม่ sqlconnection (configurationsettings.appsettings ["connstr"];
/// ถ้า (! page.ispostback)
-
/// cmd = sqlcommand ใหม่ ("getNews", conn);
/// cmd.CommandType = CommandType.storedProcedure;
/// cmd.parameters.add ("@posgeindex", 1);
/// cmd.parameters.add ("@PageSize", 1);
/// cmd.parameters.add ("@docount", จริง);
// conn.open ();
/// Pager.RecordCount = (int) cmd.executescalal ();
// conn.close ();
/// binddata ();
-
-
-
/// void binddata ()
-
/// cmd = sqlcommand ใหม่ ("getNews", conn);
/// cmd.CommandType = CommandType.storedProcedure;
/// cmd.parameters.add ("@posgeindex", pager.currentPageIndex);
/// cmd.parameters.add ("@PageSize", pager.pagesize);
/// cmd.parameters.add ("@docount", false);
// conn.open ();
/// dataGrid1.datasource = cmd.executereader ();
/// dataGrid1.databind ();
// conn.close ();
/// pager.custominfotext = "บันทึกยอดรวม: <font color =" blue "> <b>"+pager.recordcount.toString ()+"</font>" ";
/// pager.custominfotext+= "หมายเลขหน้าทั้งหมด: <font color =" blue "> <b>"+pager.pagecount.toString ()+"</font>" ";
/// pager.custominfotext+= "หน้าปัจจุบัน: <font color =" red "> <b>"+pager.currentPageIndex.toString ()+"</b> </font>"
-
/// โมฆะ ChangePage (Object SRC, PageChangedEventArgs E)
-
/// Pager.CurrentPageIndex = E.NewPageIndex;
/// binddata ();
-
/// </script>
/// <meta http-equiv = "content-language" content = "zh-cn">
/// <meta http-equiv = "content-type" content = "text/html; charset = gb2312">>
/// <meta name = "general" content = "EditPlus">
/// <meta name = "Author" content = "WebDiyer ([อีเมลป้องกัน])"> ">">
/// </head>
/// <body>
/// <form runat = "เซิร์ฟเวอร์" id = "form1">
/// <asp: dataGrid id = "dataGrid1" runat = "เซิร์ฟเวอร์"/>> >>
/// <WebDiyer: ASPNETPAGER ID = "Pager"
/// runat = "เซิร์ฟเวอร์"
/// pageSize = "8"
/// NumericButtonCount = "8"
/// showcustominfosection = "ซ้าย"
/// PagingButtonspacing = "0"
/// showinputbox = "เสมอ"
/// cssclass = "mypager"
/// horizontalalally = "ขวา"
/// onPageChanged = "ChangePage"
/// SubmentButtonText = "Turn to"
/// numericButtonTextFormatString = "[{0}]"/>>
/// </form>
/// </body>
/// </html>
-
/// </code>
/// <p> ขั้นตอนการจัดเก็บข้อมูลเซิร์ฟเวอร์ SQL ที่ใช้ในตัวอย่างนี้: </p>
/// <code>
/// <!
/// สร้างขั้นตอน getNews
/// (@Pagesize int,
/// @PageIndex int
@docount บิต)
/// เช่น
/// ตั้งค่า nocount บน
/// ถ้า (@docount = 1)
/// เลือกนับ (ID) จากข่าว
/// อื่น
/// เริ่ม
/// ประกาศ @indextable tabl
/// ประกาศ @pagelowerbound int
/// ประกาศ @pageupperbound int
/// set @pageLowerBound = (@PePageIndex-)*@pageSize
/// set @[อีเมลป้องกัน] [อีเมลป้องกัน]
/// SET ROWCOUNT @PageUPPOND
/// แทรกลงใน @indextable (NID) เลือก ID จากลำดับข่าวโดย AddTime desc
/// เลือก O.ID, O.Source, O.Title, O.Addtime จากข่าว
/// และ t.id> @pageelowerbound และ t.id <= @pageupperbound สั่งซื้อโดย t.id
/// จบ
/// set nocount ปิด
/// ไป
-
/// </code> </expact>
#endregion
[defaultProperty ("PAGESIZE")]]
[defaultEvent ("pagechanged")]]
[parsechildrn (เท็จ)]]
[Presentchildren (เท็จ)]
[คำอธิบาย ("" การควบคุมการปนเปื้อนสำหรับแอปพลิเคชันเว็บ ASP.NET ")]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
[designer (typeof (pagerdesigner)]]]
[ToolboxData (<{0}: ASPNETPAGER runat = Server> </{0}: ASPNETPAGER> ")]
คลาสสาธารณะ ASPNETPAGE
-
สตริงส่วนตัว cssclassname;
สตริงส่วนตัว urlPageIndExName = "หน้า";
private bool urlpaging = false;
สตริงส่วนตัว InputPageIndex;
สตริงส่วนตัว currenturl = null;
private namevaluecollection urlparams = null;
/// รับหรือตั้งค่า
/// </summary>
[Browsable (จริง),,
หมวดหมู่ ("ปุ่มนำทาง"), defaultValue (จริง), คำอธิบาย ("ระบุเมื่อเมาส์อยู่บนปุ่มนำทางคือพรอมต์เครื่องมือแสดงผล"
บูลสาธารณะที่แสดงให้เห็น
-
รับ
-
Object OBJ = ViewState ["SHOWAVIGITIONTOOLTIP"];
return (obj == null)?
-
ชุด
-
ViewState ["sofelnavigationToolTip"] = ค่า;
-
} /// <summary>
/// รับหรือตั้งค่าเครื่องมือปุ่มนำทางเพื่อแจ้งรูปแบบข้อความ
/// </summary>
[Browsable (จริง),,
หมวดหมู่ ("ปุ่มนำทาง"),
defaultValue ("หันไปที่หน้าหน้า {0}")
คำอธิบาย ("ปุ่มนำทางหน้าเครื่องมือเตือนรูปแบบข้อความ"))]]
สตริงสาธารณะ
-
รับ
-
Object OBJ = ViewState ["NavigationToolTipTextFormatString"];
return (obj == null)?
-
ชุด
-
เคล็ดลับสตริง = ค่า;
if.trim ()
เคล็ดลับ = "{0}";
ViewState
-
} /// <summary>
/// รับหรือตั้งค่าค่านี้ระบุว่าปุ่มดัชนีหน้าถูกแทนที่ด้วยหมายเลขภาษาจีน
/// </summary>
/// <lmarks>
/// เมื่อตั้งค่านี้เป็นจริงและไม่ได้ใช้ปุ่มรูปภาพค่าของปุ่มดัชนีหน้า 1, 2, 3 ฯลฯ จะถูกแทนที่ด้วยอักขระจีนก่อนสองและสาม
/// </lemarks>
[Browsable (จริง),,
หมวดหมู่ ("ปุ่มนำทาง"),
defaultValue (เท็จ)
การอธิบาย ("ปุ่มค่าดัชนีหน้าถูกแทนที่ด้วยหมายเลขภาษาจีนที่หนึ่งสองและสาม"]]
บูลสาธารณะ Chinesepageindex
-
รับ
-
Object OBJ = ViewState ["ChinesepageIndex"];
return (obj == null)?
-
ชุด
-
ViewState ["ChinesepageIndex"] = ค่า;
-
} /// <summary>
/// รับหรือตั้งค่ารูปแบบการแสดงผลของข้อความบนปุ่มนำทางหมายเลข
/// </summary>
/// <value>
/// สตริงระบุรูปแบบการแสดงผลของข้อความบนค่าดัชนีหน้าของหน้าค่าเริ่มต้นคือ <ดู cref = "string.empty"/> นั่นคือคุณสมบัติไม่ได้ตั้งค่า </alues>
/// <lmarks>
/// ใช้คุณสมบัติ NumericButtonTextFormatString เพื่อระบุรูปแบบการแสดงผลของปุ่มค่าดัชนี
/// ถ้าค่าถูกตั้งค่าเป็น "[{0}]" ข้อความดัชนีจะแสดงเป็น: [1] [2] [3] ... , ตั้งค่าเป็น "-{0}-", จากนั้นเปลี่ยนข้อความดัชนีเป็น: -1--2- -3- ...
/// </lemarks>
[Browsable (จริง),,
defaultValue ("") ,,
หมวดหมู่ ("ปุ่มนำทาง"),
คำอธิบาย ("รูปแบบการแสดงผลของข้อความบนปุ่มตัวเลขดัชนีหน้า"))]]
สตริงสาธารณะ NumericButtonTextFormatstring
-
รับ
-
Object OBJ = ViewState
return (obj == null)?
-
ชุด
-
ViewState ["NumericButtontexTextFormatring"] = ค่า;
-
} /// <summary>
/// รับหรือตั้งค่าประเภทของปุ่มนำทางเพจแม้ว่าข้อความจะยังคงเป็นรูปภาพ
/// </summary>
/// <lmarks>
/// ในการใช้ปุ่มรูปภาพคุณต้องเตรียมรูปภาพต่อไปนี้: สิบค่าจาก 0 ถึง 9 (เมื่อ showpageindex ถูกตั้งค่าเป็นจริง) หน้าแรกหน้าก่อนหน้าหน้าถัดไปหน้าสุดท้ายและอื่น ๆ หน้ามากขึ้นเรื่อย ๆ (... ) ห้าปุ่มปุ่ม (เมื่อ showfirstlast และ showprevnext ถูกตั้งค่าเป็นจริง),
/// หากปุ่มตัวเลขของดัชนีหน้าปัจจุบันจำเป็นต้องแตกต่างจากปุ่มตัวเลขดัชนีหน้าอื่น ๆ คุณต้องเตรียมปุ่มรูปภาพของดัชนีหน้าปัจจุบัน
/// หากรูปภาพของหน้าแรกปิดใช้งานหน้าสุดท้ายหน้าถัดไปและหน้าสุดท้ายจะแตกต่างจากรูปภาพปุ่มปกติคุณต้องเตรียมรูปภาพของปุ่มทั้งสี่ในสถานะปิดใช้งาน
/// <p> <b> กฎการตั้งชื่อของไฟล์รูปภาพมีดังนี้: </b> </p>
/// <p> จากปุ่มตัวเลข 0 ถึง 9 สิบปุ่มตัวเลขรูปภาพจะต้องมีชื่อ "value+buttonimagenameextexexenses+buttonimageextentation"
/// buttonimageextenting เป็นชื่อต่อท้ายของไฟล์รูปภาพเช่น. gif หรือ. jpg ฯลฯ ไฟล์รูปภาพใด ๆ ที่สามารถแสดงในเบราว์เซอร์ ตัวอย่างเช่นไฟล์รูปภาพของดัชนีหน้า "1" สามารถตั้งชื่อ "1.GIF" หรือ "1.JPG"
/// เมื่อคุณมีไฟล์รูปภาพสองชุดขึ้นไปคุณสามารถแยกความแตกต่างของชุดรูปภาพที่แตกต่างกันโดยการระบุค่าแอตทริบิวต์ buttonimagenameextent "1.gif" เร็วๆ นี้. </p>
/// <p> ชื่อไฟล์รูปภาพของปุ่มหน้าแรกเริ่มต้นด้วย "First" ไม่ว่าจะเป็น buttonimagenameexketnsion ที่ใช้ buttonimagenameextension ขึ้นอยู่กับการตั้งค่าของปุ่มตัวเลขและมีรูปภาพเพิ่มเติมหรือไม่ </p>
/// </lemarks>
/// <exception>
/// ตัวอย่างแฟรกเมนต์รหัสต่อไปนี้หากใช้ปุ่มรูปภาพ:
/// <p>
/// <code> <!
/// <webDiyer: ASPNETPAGER runat = "เซิร์ฟเวอร์"
/// id = "Pager1"
/// onPageChanged = "ChangePage"
/// PagingButtonType = "Image"
/// imagePath = "รูปภาพ"
/// buttonimagenameextent = "n"
/// DisabledButtonImagenameExtension = "G"
/// buttonimageextent = "gif"
/// cpibuttonimagenameexension = "r"
/// PagingButtonspacing = 5/>
-
/// </code>
/// </p>
/// </ตัวอย่าง>
[Browsable (จริง),,
defaultValue (pagingbuttontype.text)
หมวดหมู่ ("ปุ่มนำทาง"),
คำอธิบาย
สาธารณะ PagingTontype Pagingtisepe
-
รับ
-
Object OBJ = ViewState
return (obj == null)?
-
ชุด
-
ViewState
-
} /// <summary>
/// รับหรือตั้งค่าประเภทของปุ่มตัวเลขการนำทางซึ่งใช้ได้เฉพาะเมื่อตั้งค่า pagingbuttontype เป็นภาพ
/// </summary>
/// <lmarks>
/// เมื่อคุณตั้งค่า PagingButtonType เป็นภาพเมื่อคุณไม่ต้องการให้ปุ่มตัวเลขดัชนีหน้าใช้รูปภาพคุณสามารถตั้งค่าเป็นข้อความซึ่งจะทำให้ปุ่มข้อมูลดัชนีหน้าใช้ข้อความแทนปุ่มรูปภาพ .
/// </lemarks>
[Browsable (จริง),,
defaultValue (pagingbuttontype.text)
หมวดหมู่ ("ปุ่มนำทาง"),
คำอธิบาย ("ประเภท" ของหน้าการนำทางตัวเลขตัวเลขตัวเลข "))]]]]]
สาธารณะ pagingbuttontype numericbuttontype
-
รับ
-
Object OBJ = ViewState
return (obj == null)?
-
ชุด
-
ViewState ["NumericButtonType"] = ค่า;
-
} /// <summary>
/// รับหรือตั้งค่าประเภทของหน้าแรกหน้าสุดท้ายหน้าถัดไปและหน้าสุดท้าย
/// </summary>
/// <lmarks>
/// เมื่อคุณตั้งค่า pagingbuttontype เป็นภาพ แต่ไม่ต้องการใช้รูปภาพสำหรับหน้าแรกหน้าถัดไปหน้าถัดไปและหน้าสุดท้ายคุณสามารถตั้งค่าเป็นข้อความซึ่งจะทำให้ปุ่มสี่ก่อนหน้านี้ก่อนหน้านี้ ปุ่มสี่ปุ่มใช้ข้อความแทนปุ่มรูปภาพ
/// </lemarks>
[Browsable (จริง),,
หมวดหมู่ ("ปุ่มนำทาง"),
defaultValue (pagingbuttontype.text)
คำอธิบาย
pagingbuttontype สาธารณะ
-
รับ
-
Object OBJ = ViewState ["NavigationButtonType"];
return (obj == null)?
-
ชุด
-
ViewState ["NavigationButtonType"] = ค่า;
-
} /// <summary>
/// รับหรือตั้งค่าประเภทของปุ่ม "เพิ่มเติมหน้า" (... ) ซึ่งใช้ได้เฉพาะเมื่อตั้งค่า PagingButtonType เป็นภาพ
/// </summary>
/// <lmarks>
/// เมื่อคุณตั้งค่า pagingbuttontype เป็นภาพ แต่ไม่ต้องการปุ่มหน้าเพิ่มเติม (... ) เพื่อใช้รูปภาพคุณสามารถตั้งค่านี้เป็นข้อความซึ่งจะทำให้ปุ่มหน้าเพิ่มเติมใช้ข้อความแทนปุ่มรูปภาพ
/// </lemarks>
[Browsable (จริง),,
หมวดหมู่ ("ปุ่มนำทาง"),
defaultValue (pagingbuttontype.text)
คำอธิบาย ("หน้าเพิ่มเติม" (... ) ประเภทปุ่ม ")]]
pagingbuttontype moreButtonpe
-
รับ
-
Object OBJ = ViewState ["MoreButtisePe"];
return (obj == null)?
-
ชุด
-
ViewState ["MoreButTisePe"] = ค่า;
-
} /// <summary>
/// รับหรือตั้งค่าระยะห่างระหว่างปุ่มนำทางเพจ
/// </summary>
[Browsable (จริง),,
หมวดหมู่ ("ปุ่มนำทาง"),
defaultValue (typeof (หน่วย), "5px")
คำอธิบาย
หน่วยสาธารณะ pagingbuttonspacing
-
รับ
-
Object OBJ = ViewState ["PagingButtonspacing"];
return (obj == null)?
-
ชุด
-
ViewState ["PagingButTonspacing"] = ค่า;
-
} /// <summary>
/// รับหรือตั้งค่าซึ่งระบุว่าปุ่มหน้าแรกและสุดท้ายจะปรากฏขึ้นในองค์ประกอบการนำทางหน้าหรือไม่
/// </summary>
[Browsable (จริง),,
การอธิบาย
หมวดหมู่ ("ปุ่มนำทาง"),
defaultValue (จริง)]
public bool showfirstlast
-
รับ
-
Object obj = viewstate ["showfirstlast"];
return (obj == null)?
-
ตั้งค่า {viewstate ["showfirtlast"] = value;}
} /// <summary>
/// การรับหรือตั้งค่าค่านี้ระบุว่าหน้าก่อนหน้าและหน้าถัดไปจะแสดงในองค์ประกอบการนำทางหน้า
/// </summary>
[Browsable (จริง),,
การอธิบาย
หมวดหมู่ ("ปุ่มนำทาง"),
defaultValue (จริง)]
public bool showprevnext
-
รับ
-
Object obj = viewstate ["showprevnext"];
return (obj == null)?
-
ตั้งค่า {viewState ["showprevnext"] = value;}
} /// <summary>
/// รับหรือตั้งค่าที่ระบุว่าปุ่มค่าดัชนีหน้าจะแสดงในองค์ประกอบการนำทางหน้าหรือไม่
/// </summary>
[Browsable (จริง),,
คำอธิบาย ("ไม่ว่าปุ่มค่าจะปรากฏในองค์ประกอบการนำทางหน้า") หรือไม่
หมวดหมู่ ("ปุ่มนำทาง"),
defaultValue (จริง)]
public bool showpageindex
-
รับ
-
Object OBJ = ViewState ["ShowPageIndex"];
return (obj == null)?
-
ตั้งค่า {viewstate ["showpageindex"] = value;}
} /// <summary>
/// รับหรือตั้งค่าเป็นข้อความที่แสดงโดยปุ่มหน้าแรก
/// </summary>
[Browsable (จริง),,
คำอธิบาย ("ข้อความแสดงบนปุ่มหน้าแรก"),
หมวดหมู่ ("ปุ่มนำทาง"),
defaultValue ("<font face =" webdings "> 9 </font>")]]]]
สตริงสาธารณะ FirstPagetext
-
รับ
-
Object OBJ = ViewState ["FirstPagetext"];
return (obj == null)?
-
ตั้งค่า {viewState ["FirstPageText"] = value;}
} /// <summary>
/// รับหรือตั้งค่าเป็นข้อความที่แสดงในปุ่มหน้าก่อนหน้า
/// </summary>
[Browsable (จริง),,
คำอธิบาย ("ข้อความแสดงบนปุ่มหน้าก่อนหน้า"),
หมวดหมู่ ("ปุ่มนำทาง"),
defaultValue ("<font face =" webdings "> 3 </font>")]]]]]
prevagetext สตริงสาธารณะ
-
รับ
-
Object OBJ = ViewState ["Prevagetext"];
return (obj == null)?
-
ตั้งค่า {viewState ["prevPageText"] = value;}
} /// <summary>
/// รับหรือตั้งค่าข้อความที่แสดงในหน้าถัดไป
/// </summary>
[Browsable (จริง),,
คำอธิบาย ("ข้อความแสดงบนปุ่มหน้าถัดไป"),
หมวดหมู่ ("ปุ่มนำทาง"),
defaultValue ("<font face =" webdings "> 4 </font>")]]]]]
สตริงสาธารณะ NextPagetext
-
รับ
-
Object OBJ = ViewState ["NextPagetext"];
return (obj == null)?
-
ตั้งค่า {viewState ["NextPageText"] = value;}
} /// <summary>
/// รับหรือตั้งค่าข้อความที่แสดงเป็นปุ่มหน้าสุดท้าย
/// </summary>
[Browsable (จริง),,
คำอธิบาย ("ข้อความแสดงบนปุ่มหน้าสุดท้าย"),
หมวดหมู่ ("ปุ่มนำทาง"),
defaultValue ("<font face =" webdings ">: </font>")]]]]
สตริงสาธารณะ LastPagetext
-
รับ
-
Object OBJ = ViewState ["LastPagetext"];
return (obj == null)?
-
ตั้งค่า {viewState ["LastPageText"] = value;}
} /// <summary>
/// รับหรือตั้งค่าในจำนวนปุ่มตัวเลขที่แสดงในเวลาเดียวกันในองค์ประกอบการนำทางหน้าในการควบคุม <ดู cref = "aspnetpager"/>
/// </summary>
[Browsable (จริง),,
การอธิบาย
หมวดหมู่ ("ปุ่มนำทาง"),
defaultValue (10)]
Public IntumericButtonCount
-
รับ
-
Object OBJ = ViewState ["NumericButtonCount"];
return (obj == null)?
-
ตั้งค่า {viewState ["NumericButtonCount"] = value;}
} /// <summary>
/// รับหรือตั้งค่าที่ระบุว่าปุ่มปิดใช้งานจะปรากฏขึ้นหรือไม่
/// </summary>
/// <lmarks>
/// ค่านี้ถูกใช้เพื่อระบุว่าปุ่มนำทาง Pagination ที่ปิดใช้งานจะปรากฏขึ้นหรือไม่ เป็นปุ่มหน้าสุดท้ายจะถูกปิดใช้งานปุ่มที่ถูกแบนไม่มีลิงก์และคลิกที่ปุ่มจะไม่มีผลกระทบใด ๆ
/// </lemarks>
[Browsable (จริง),,
หมวดหมู่ ("ปุ่มนำทาง"),
คำอธิบาย ("ไม่ว่าจะแสดงปุ่มปิดใช้งาน") หรือไม่
defaultValue (จริง)]
Public Bool Showdisabledbuttons
-
รับ
-
Object OBJ = ViewState ["ShowDisabledButton"];
return (obj == null)?
-
ชุด
-
ViewState ["ShowDisabledButtons"] = ค่า;
-
-
#endregion
#ปุ่มรูปภาพภูมิภาค
/// <summary>
/// รับหรือตั้งค่าเส้นทางของไฟล์รูปภาพเมื่อใช้ปุ่มรูปภาพ
/// </summary>
[Browsable (จริง),,
หมวดหมู่ ("ปุ่มภาพ"),
คำอธิบาย ("เมื่อใช้ปุ่มรูปภาพระบุเส้นทางของไฟล์รูปภาพ"), "),),),),),),)
defaultValue (null)]
สตริงสาธารณะ imagepath
-
รับ
-
String imgPath = (String) ViewState ["ImagePath"];
ถ้า (imgpath! = null)
imgPath = this.rsolveurl (imgpath);
return imgpath;
-
ชุด
-
string imgpath = value.trim ()
ViewState ["ImagePath"] = (imgpath.endswith ("/")? imgpath: imgpath+"/";
-
-
/// <summary>
/// รับหรือตั้งค่าเมื่อใช้ปุ่มรูปภาพประเภทของรูปภาพเช่น GIF หรือ JPG ค่านี้เป็นชื่อต่อท้ายของไฟล์รูปภาพ
/// </summary>
[Browsable (จริง),,
หมวดหมู่ ("ปุ่มภาพ"),
defaultValue (". gif")
คำอธิบาย ("เมื่อใช้ปุ่มรูปภาพประเภทของรูปภาพเช่น GIF หรือ JPG ค่านี้เป็นชื่อต่อท้ายของไฟล์รูปภาพ")]]
สตริงสาธารณะ buttonimageextent
-
รับ
-
Object obj = viewstate ["buttonimageextent"];
return (obj == null)?
-
ชุด
-
String ext = value.trim ();
ViewState ["ButtonImageExtension"] = (ext.startswith (".")? ext: ("."+ext);
-
-
/// <summary>
/// รับหรือตั้งค่าสตริงคำต่อท้ายของชื่อไฟล์รูปภาพที่กำหนดเองเพื่อแยกความแตกต่างของปุ่มประเภทต่างๆ
/// </summary>
/// <ข้อสังเกต> <note> หมายเหตุ: </ไม่> ค่านี้ไม่ใช่ไฟล์เสริม แต่มีสตริงที่เพิ่มลงในชื่อรูปภาพเพื่อแยกความแตกต่างไฟล์รูปภาพที่แตกต่างกันเช่น ::
/// ปัจจุบันมีปุ่มสองชุดซึ่งหนึ่งในนั้น "1" สามารถเป็น "1f.gif" และชื่อรูปภาพของ "1" ในชุดอื่นสามารถเป็น "1n.gif" ซึ่ง F และ F และ n คือ buttonimagenameextension </lemarks>
[Browsable (จริง),,
defaultValue (null),,
หมวดหมู่ ("ปุ่มภาพ"),
Descripting ("คำต่อท้ายของ" ชื่อไฟล์รูปภาพที่กำหนดเอง) เช่น buttonimagenamexketency ของรูปภาพ "1f.gif" คือ "f" ")]]]]]]]]]]]]]]]]]]]]]]]]]
สตริงสาธารณะ buttonimageenameextension
-
รับ
-
return (string) viewstate
-
ชุด
-
ViewState ["ButtonImagenameExtension"] = ค่า;
-
-
/// <summary>
/// รับหรือตั้งค่าชื่อรูปภาพคำต่อท้ายของปุ่มดัชนีหน้าปัจจุบัน
/// </summary>
/// <lmarks>
/// เมื่อ <ดู cref = "pagingButtonType"/> ถูกตั้งค่าเป็นภาพแอตทริบิวต์นี้ช่วยให้คุณสามารถตั้งค่าชื่อรูปภาพคำต่อท้ายที่ใช้โดยปุ่มดัชนีหน้าปัจจุบันดังนั้นปุ่มดัชนีหน้าเว็บปัจจุบันสามารถใช้แตกต่างจากหน้าอื่น ๆ ปุ่มดัชนี
/// </lemarks>
[Browsable (จริง),,
defaultValue (null),,
หมวดหมู่ ("ปุ่มภาพ"),
คำอธิบาย ("สตริงชื่อคณะภาพของปุ่มดัชนีหน้าปัจจุบัน")]]
สตริงสาธารณะ cpibuttonimagnameextension
-
รับ
-
Object OBJ = ViewState
return (obj == null)?
-
ชุด
-
ViewState ["cpibuttonimagenameExension"] = ค่า;
-
-
/// <summary>
/// รับหรือตั้งค่าปุ่มการนำทางหน้าปิดใช้งานชื่อรูปภาพต่อท้ายสตริง
/// </summary>
/// <lmarks>
/// เมื่อ <ดู cref = "pagingButtonType"/> ถูกตั้งค่าเป็นภาพค่านี้ช่วยให้คุณสามารถตั้งค่าปุ่มนำทางหน้า (รวมถึงหน้าแรกหน้าก่อนหน้าหน้าก่อนหน้าหน้าก่อนหน้าหน้าก่อนหน้า หน้าก่อนหน้านี้สตริงคำต่อท้ายชื่อไฟล์รูปภาพของหน้าถัดไปและหน้าสุดท้ายของหน้าสุดท้ายดังนั้นปุ่มนำทางหน้าปิดใช้งานอาจแตกต่างจากปุ่มนำทางหน้าปกติ หากไม่ได้ตั้งค่านี้ค่าเริ่มต้นคือ <ดู cref = "buttonimageRextent"/> นั่นคือปุ่มนำทางหน้าปิดใช้งานใช้ภาพเดียวกับปุ่มนำทางหน้าปกติ
/// </lemarks>
[Browsable (จริง),,
defaultValue (null),,
หมวดหมู่ ("ปุ่มภาพ"),
Descripting ("สตริงชื่อเสียงชื่อรูปภาพของปุ่มนำทางหน้าปิดใช้งาน"))]]
สตริงสาธารณะ disabledbuttonimagenameextension
-
รับ
-
Object OBJ = ViewState
return (obj == null)?
-
ชุด
-
ViewState
-
-
/// <summary>
/// ระบุวิธีการจัดตำแหน่งเมื่อใช้ปุ่มรูปภาพ
/// </summary>
[Browsable (จริง),,
คำอธิบาย
defaultValue (imagealign.baseline),
หมวดหมู่ ("ปุ่มรูปภาพ")]]]
สาธารณะ imagealign buttonimagealign
-
รับ
-
Object OBJ = ViewState ["buttonimagealign"];
return (obj == null)?
-
ตั้งค่า {viewstate ["buttonimagealign"] = value;}
-
#endregion
#region paging
/// <summary>
/// รับหรือตั้งค่าว่าจะเปิดใช้งาน URL เพื่อส่งผ่านข้อมูลการปนเปื้อน
/// </summary>
/// <lmarks>
/// เปิดใช้งานวิธีการเพจ URL เพื่อส่งผ่านดัชนีหน้าเว็บที่ผู้ใช้ต้องการเข้าถึงผ่าน URL
/// ดังนั้นข้อมูลทั้งหมดจะถูกกู้คืนเป็นค่าเริ่มต้นหรือจำเป็นต้องได้รับในการเพจแต่ละครั้ง ใช้วิธีการเพจ URL ไม่รองรับค่าแอตทริบิวต์ของการเปลี่ยนแปลงแบบไดนามิกในการควบคุมการเพจ
/// เนื่องจากค่าแอตทริบิวต์ใหม่ไม่สามารถส่ง URL ไปยังหน้าถัดไปได้ชั่วคราว
/// </lemarks>
/// <except> ตัวอย่างต่อไปนี้แสดงวิธีการใช้วิธีการเพจ URL ของ AspNetPager เพื่อ paged dataGrid (ใช้ฐานข้อมูลการเข้าถึง):
/// <code> <!
/// <%@register tagprefix = "webDiyer" namespace = "wuqi.webdiyer" แอสเซมบลี = "aspnetpager"%>
/// <%@import namespace = "system.data.oledb"%>
/// <%@ import namespace = "system.data"%>
/// <%@ page language = "c#" debug = true%>
/// <html>
/// <head>
/// <title> ยินดีต้อนรับสู่ webdiyer.com </title>
/// <สคริปต์ runat = "เซิร์ฟเวอร์">
/// OLEDBConnection Conn;
/// OLEDBCOMMAND CMD;
/// void page_load (Object Src, EventArgs E) {{
/// conn = new OLEDBCONNECTION ("Provider = Microsoft.jet.oledb.4.0; แหล่งข้อมูล ="+Server.mappath ("Accept/Aspnetpager.mdb");
/// ถ้า (! page.ispostback) {
/// CMD = ใหม่ OLEDBCOMMAND ("SELECT COUNT (NEWSID) จาก WQNews", Conn);
// conn.open ();
/// Pager.RecordCount = (int) cmd.executescalal ();
// conn.close ();
/// binddata ();
-
-
-
/// void binddata () {{)
/// cmd = new OLEDBCOMMAND ("เลือก NewsID, หัวเรื่อง, แหล่งที่มา, AddTime จาก WQNews Order โดยการออกแบบ AddTime, Conn); conn); conn); conn); conn); conn); conn); Conn;
/// Adapter OLEDBDATAADAPTER = ใหม่ OLEDBDATAADAPTER (CMD);
/// DataSet DS = ชุดข้อมูลใหม่ ();
/// Adapter.fill (DS, Pager.pagesize*(Pager.CurrentPageIndex-), Page.pageSize, "ข่าว");
/// dg.datasource = ds.tables ["ข่าว"];
/// dg.databind ();
-
-
/// Void ChangePage (Object Src, PageChangedEventArgs E) {{
/// Pager.CurrentPageIndex = E.NewPageIndex;
/// binddata ();
-
-
/// </script>
/// <meta http-equiv = "content-language" content = "zh-cn">
/// <meta http-equiv = "content-type" content = "text/html; charset = gb2312">>
/// <meta name = "general" content = "EditPlus">
/// <meta name = "Author" content = "WebDiyer ([อีเมลป้องกัน])"> ">">
/// </head>
/// <body>
/// <form runat = "เซิร์ฟเวอร์" id = "form1">
/// <h2 align = "center"> aspnetpager paging ตัวอย่าง </h2>
/// <asp: dataGrid id = "dg" runat = "เซิร์ฟเวอร์"
/// CellPadding = "4" Align = "Center"/>>
-
/// <webDiyer: ASPNETPAGER runat = "เซิร์ฟเวอร์" id = "เพจเจอร์"
/// onPageChanged = "ChangePage"
/// horizontalalally = "center"
-
/// pageSize = "8"
/// showinputbox = "เสมอ"
/// SubmentButtonStyle = "Border: 1px Solid #000066; ความสูง: 20px; Width: 30px"
/// inputboxstyle = "เส้นขอบ: 1px #0000ff solid; text-allign: center"
/// SubmentButtonText = "Turn to"
/// urlpaging = "true"
/// urlPageIndexName = "PageIndex"/>
/// </form>
/// </body>
/// </html>
///]]> </code>
/// </ตัวอย่าง>
[Browsable (จริง),,
หมวดหมู่ ("เพจ"),
defaultValue (เท็จ)
คำอธิบาย ("ไม่ว่าจะใช้ URL เพื่อส่งผ่านข้อมูลการแบ่งหน้าไปยังหน้าเว็บ")]]
public bool urlpaging
-
รับ
-
กลับ urlpaging;
-
ชุด
-
urlpaging = ค่า;
-
-
/// <summary>
/// ได้รับหรือตั้งค่าเมื่อเปิดใช้งานวิธีการเพจ URL และชื่อของพารามิเตอร์ของดัชนีหน้าที่จะส่งใน URL อยู่ใน URL
/// </summary>
/// <lmarks>
/// แอตทริบิวต์นี้ช่วยให้คุณสามารถปรับแต่งชื่อของพารามิเตอร์ของดัชนีหน้าเพื่อผ่านดัชนีหน้าการส่ง URL เพื่อหลีกเลี่ยงการทำซ้ำด้วยชื่อพารามิเตอร์ที่มีอยู่
/// <p> ค่าเริ่มต้นของแอตทริบิวต์คือ "หน้า" นั่นคือเมื่อ URL Paging, URL ที่แสดงในแถบที่อยู่เบราว์เซอร์นั้นคล้ายกับ: </p> http://www.webdiyer.com /ASPNETPAGER/SAMPLES/DATAGRID_URL.ASPX?
/// <p> หากค่าถูกเปลี่ยนเป็น "PageIndex" URL ด้านบนจะกลายเป็น: </p> <p> http://www.webdiyer.com/aspnetpager/samples/datagrid_url.aspx?pageindex = 2 </p>
/// </lemarks>
[Browsable (จริง),,
defaultValue ("หน้า")
หมวดหมู่ ("เพจ"),
คำอธิบาย ("เมื่อเปิดใช้งานวิธีการเพจ URL ชื่อของพารามิเตอร์ของดัชนีหน้าเพื่อระบุใน URL")]]]]]]]]]]]]]]]]]]]]]]]
สตริงสาธารณะ urlpageindexname
-
รับ {return urlpageindexname;}
ตั้งค่า {urlPageIndExName = value;}
-
/// <summary>
/// รับหรือตั้งค่าดัชนีของหน้าจอแสดงผลปัจจุบัน
/// </summary>
/// <ข้อเสนอ> ใช้แอตทริบิวต์นี้เพื่อกำหนดหน้าเว็บที่แสดงในขณะนี้ในการควบคุม ASPNETPAGER แอตทริบิวต์นี้ยังใช้เพื่อควบคุมหน้าเว็บที่แสดงโดยการเขียนโปรแกรม
/// <p> <b> หมายเหตุ: </b> แตกต่างจาก CurrentPageIndex ของ DataGrid Control, คุณสมบัติ CurrentPageIndex ของ ASPNETPAGER เริ่มต้นจาก 1 </p> </lemarks>
[อ่านอย่างง่าย (จริง),
เรียกดูได้ (เท็จ)
คำอธิบาย ("ดัชนีของหน้าจอแสดงผลปัจจุบัน")
หมวดหมู่ ("เพจ"),
defaultValue (1)
DesignerserializationVisibility (DesignerserializationVisibility.Hidden)]]
สาธารณะ int currentPageIndex
-
รับ
-
Object cpage = viewState ["CurrentPageIndex"];
int pindex = (cpage == null)? 1: (int) cpage;
ถ้า (pindex> pagecount && pagecount> 0)
ส่งคืน pagecount;
อื่นถ้า (pindex <1)
กลับ 1;
กลับ Pindex;
-
ชุด
-
int cpage = ค่า;
ถ้า (cpage <1)
cpage = 1;
อื่นถ้า (cpage> this.pagecount)
cpage = this.pagecount;
ViewState ["CurrentPageIndex"] = cpage;
-
-
/// <summary>
/// รับหรือตั้งค่าจำนวนทั้งหมดของบันทึกทั้งหมดที่ต้องทำหน้า
/// </summary>
/// <lmarks>
/// เมื่อโหลดหน้าเป็นครั้งแรกควรได้รับแอตทริบิวต์สำหรับจำนวนทั้งหมดของบันทึกการเพจในตารางข้อมูลที่ส่งคืนจากขั้นตอนการจัดเก็บข้อมูลหรือคำสั่ง SQL บนหน้าเว็บบนหน้าค่าจะได้รับจาก ViewState เมื่อกลับมาดังนั้นจึงหลีกเลี่ยงการเข้าถึงฐานข้อมูลทุกครั้งที่หลีกเลี่ยงการแบ่งหน้า ASPNETPAGER คำนวณจำนวนหน้าทั้งหมดที่ต้องการโดยข้อมูลทั้งหมดตามจำนวนข้อมูลทั้งหมดที่จะถูกเพจและ <ดู CREF = "PAGESIZE"/> แอตทริบิวต์ไปยังเพจนั่นคือค่าของ <ดู cREF = "pageCount" />
/// </lemarks>
/// <exception>
/// ตัวอย่างด้านล่างแสดงให้เห็นว่าจำนวนระเบียนทั้งหมดที่ส่งคืนจากคำสั่ง SQL ถูกกำหนดให้กับแอตทริบิวต์:
/// <p>
/// <code> <!
/// <html>
/// <head>
/// <title> ยินดีต้อนรับสู่ webdiyer.com </title>
/// <สคริปต์ runat = "เซิร์ฟเวอร์">
/// SQLConnection Conn;
/// sqlcommand cmd;
/// void page_load (Object SRC, EventArgs E)
-
// conn = ใหม่ sqlconnection (configurationsettings.appsettings ["connstr"];
/// ถ้า (! page.ispostback)
-
/// CMD = ใหม่ SQLCOMMAND ("เลือกนับ (ID) จากข่าว", Conn);
// conn.open ();
/// Pager.RecordCount = (int) cmd.executescalal ();
// conn.close ();
/// binddata ();
-
-
-
/// void binddata ()
-
/// cmd = sqlcommand ใหม่ ("getPagedNews", conn);
/// cmd.CommandType = CommandType.storedProcedure;
/// cmd.parameters.add ("@posgeindex", pager.currentPageIndex);
/// cmd.parameters.add ("@PageSize", pager.pagesize);
// conn.open ();
/// dataGrid1.datasource = cmd.executereader ();
/// dataGrid1.databind ();
// conn.close ();
-
/// โมฆะ ChangePage (Object SRC, PageChangedEventArgs E)
-
/// Pager.CurrentPageIndex = E.NewPageIndex;
/// binddata ();
-
/// </script>
/// <meta http-equiv = "content-language" content = "zh-cn">
/// <meta http-equiv = "content-type" content = "text/html; charset = gb2312">>
/// <meta name = "general" content = "EditPlus">
/// <meta name = "Author" content = "WebDiyer ([อีเมลป้องกัน])"> ">">
/// </head>
/// <body>
/// <form runat = "เซิร์ฟเวอร์" id = "form1">
/// <asp: dataGrid id = "dataGrid1" runat = "เซิร์ฟเวอร์"/>> >>
-
/// <WebDiyer: ASPNETPAGER ID = "Pager" Runat = "Server"
/// pageSize = "8"
/// NumericButtonCount = "8"
/// showcustominfosection = "ก่อน"
/// showinputbox = "เสมอ"
/// cssclass = "mypager"
/// horizontalalally = "center"
/// onPageChanged = "ChangePage"/>
-
/// </form>
/// </body>
/// </html>
-
/// </code> </p>
/// <p> รหัสขั้นตอนการจัดเก็บที่ใช้ในตัวอย่างนี้มีดังนี้: </p>
/// <code> <!
/// สร้างขั้นตอน getPagedNews
/// (@Pagesize int,
@PageIndex int)
/// เช่น
/// ตั้งค่า nocount บน
/// ประกาศ @indextable tabl
/// ประกาศ @pagelowerbound int
/// ประกาศ @pageupperbound int
/// set @pageLowerBound = (@PePageIndex-)*@pageSize
/// set @[อีเมลป้องกัน] [อีเมลป้องกัน]
/// SET ROWCOUNT @PageUPPOND
/// แทรกลงใน @indextable (NID) เลือก ID จากลำดับข่าวโดย AddTime desc
/// เลือก O.ID, O.Title, O.Source, O.Addtime จากข่าว
/// และ t.id> @pagelowerbound และ t.id <[อีเมลที่ยื่นออกมา] สั่งซื้อโดย t.id
/// set nocount ปิด
/// ไป
-
/// </code>
/// </ตัวอย่าง>
[Browsable (เท็จ),,
description("要分页的所有记录的总数,该值须在程序运行时设置,默认值为225是为设计时支持而设置的参照值。"),
category("data"),
defaultvalue(225)]
public int recordcount
-
รับ
-
object obj=viewstate["recordcount"];
return (obj==null)?0:(int)obj;
-
set{viewstate["recordcount"]=value;}
-
/// <summary>
/// 获取当前页之后未显示的页的总数。
/// </summary>
[browsable(false),
designerserializationvisibility(designerserializationvisibility.hidden)]
public int pagesremain
-
รับ
-
return pagecount-currentpageindex;
-
-
/// <summary>
/// 获取或设置每页显示的项数。
/// </summary>
/// <remarks>
/// 该值获取或设置数据呈现控件每次要显示数据表中的的数据的项数,aspnetpager根据该值和<see cref="recordcount"/> 来计算显示所有数据需要的总页数,即<see cref="pagecount"/>的值。</remarks>
/// <example>以下示例将<see cref="aspnetpager"/> 设置为允许每页显示8条数据:
/// <code>
/// <![cdata[
-
/// <webdiyer:aspnetpager id="pager" runat="server" pagesize=8 onpagechanged="changepage"/>
-
/// ]]></code></example>
[browsable(true),
description("每页显示的记录数"),
category("分页"),
defaultvalue(10)]
public int pagesize
-
รับ
-
object obj=viewstate["pagesize"];
return (obj==null)?10:(int)obj;
-
ชุด
-
viewstate["pagesize"]=value;
-
-
/// <summary>
/// 获取在当前页之后还未显示的剩余记录的项数。
/// </summary>
[browsable(false),
designerserializationvisibility(designerserializationvisibility.hidden)]
public int recordsremain
-
รับ
-
if(currentpageindex<pagecount)
return recordcount-(currentpageindex*pagesize);
return 0;}
-
/// <summary>
/// 获取所有要分页的记录需要的总页数。
/// </summary>
[browsable(false),
designerserializationvisibility(designerserializationvisibility.hidden)]
public int pagecount
-
get{return (int)math.ceiling((double)recordcount/(double)pagesize);}
-
#endregion
#region textbox and submit button
/// <summary>
/// 获取或设置页索引文本框的显示方式。
/// </summary>
/// <remarks>
/// 页索引文件框允许用户手式输入要访问的页的索引,当页数非常多时,显示页索引文本框非常方便用户跳转到指定的页,默认情况下,该文本框只有在总页数大于或等于<see cref="showboxthreshold"/> 的值时才显示,否则不显示,要想该文本框任何时候都显示,请将其值设为always,若希望任何时候都不显示,则应设为never。
///</remarks>
[browsable(true),
คำอธิบาย
category("文本框及提交按钮"),
defaultvalue(showinputbox.auto)]
public showinputbox showinputbox
-
รับ
-
object obj=viewstate["showinputbox"];
return (obj==null)?showinputbox.auto:(showinputbox)obj;
-
set{viewstate["showinputbox"]=value;}
-
/// <summary>
/// 获取或设置应用于页索引输入文本框的css类名。
/// </summary>
[browsable(true),
category("文本框及提交按钮"),
defaultvalue(null),
description("应用于页索引输入文本框的css类名")]
public string inputboxclass
-
รับ
-
return (string)viewstate["inputboxclass"];
-
ชุด
-
if(value.trim().length>0)
viewstate["inputboxclass"]=value;
-
-
/// <summary>
/// 获取或设置页索引输入文本框的css样式文本。
/// </summary>
[browsable(true),
category("文本框及提交按钮"),
defaultvalue(null),
description("应用于页索引输入文本框的css样式文本")]
public string inputboxstyle
-
รับ
-
return (string)viewstate["inputboxstyle"];
-
ชุด
-
if(value.trim().length>0)
viewstate["inputboxstyle"]=value;
-
-
/// <summary>
/// 获取或设置页索引页索引输入文本框前的文本字符串值。
/// </summary>
[browsable(true),
category("文本框及提交按钮"),
defaultvalue(null),
description("页索引输入文本框前的文本内容字符串")]
public string textbeforeinputbox
-
รับ
-
return (string)viewstate["textbeforeinputbox"];
-
ชุด
-
viewstate["textbeforeinputbox"]=value;
-
-
/// <summary>
/// 获取或设置页索引文本输入框后的文本内容字符串值。
/// </summary>
[browsable(true),
defaultvalue(null),
category("文本框及提交按钮"),
description("页索引输入文本框后的文本内容字符串")]
public string textafterinputbox
-
รับ
-
return (string)viewstate["textafterinputbox"];
-
ชุด
-
viewstate["textafterinputbox"]=value;
-
-
/// <summary>
/// 获取或设置提交按钮上的文本。
/// </summary>
[browsable(true),
category("文本框及提交按钮"),
defaultvalue("go"),
description("提交按钮上的文本")]
public string submitbuttontext
-
รับ
-
object obj=viewstate["submitbuttontext"];
return (obj==null)?"go":(string)obj;
-
ชุด
-
if(value.trim().length>0)
viewstate["submitbuttontext"]=value;
-
-
/// <summary>
/// 获取或设置应用于提交按钮的css类名。
/// </summary>
[browsable(true),
category("文本框及提交按钮"),
defaultvalue(null),
คำอธิบาย
public string submitbuttonclass
-
รับ
-
return (string)viewstate["submitbuttonclass"];
-
ชุด
-
viewstate["submitbuttonclass"]=value;
-
-
/// <summary>
/// 获取或设置应用于提交按钮的css样式。
/// </summary>
[browsable(true),
category("文本框及提交按钮"),
defaultvalue(null),
description("应用于提交按钮的css样式")]
public string submitbuttonstyle
-
รับ
-
return (string)viewstate["submitbuttonstyle"];
-
ชุด
-
viewstate["submitbuttonstyle"]=value;
-
-
/// <summary>
/// 获取或设置自动显示页索引输入文本框的最低起始页数。
/// </summary>
/// <remarks>
/// 当<see cref="showinputbox"/> 设为auto(默认)并且要分页的数据的总页数达到该值时会自动显示页索引输入文本框,默认值为30。该选项当<see cref="showinputbox"/> 设为never或always时没有任何作用。
/// </remarks>
[browsable(true),
description("指定当showinputbox设为showinputbox.auto时,当总页数达到多少时才显示页索引输入文本框"),
category("文本框及提交按钮"),
defaultvalue(30)]
public int showboxthreshold
-
รับ
-
object obj=viewstate["showboxthreshold"];
return (obj==null)?30:(int)obj;
-
set{viewstate["showboxthreshold"]=value;}
-
#endregion
#region custominfosection
/// <summary>
/// 获取或设置显示用户自定义信息区的方式。
/// </summary>
/// <remarks>
/// 该属性值设为left或right时会在分页导航元素左边或右边划出一个专门的区域来显示有关用户自定义信息,设为never时不显示。
/// </remarks>
[browsable(true),
description("显示当前页和总页数信息,默认值为不显示,值为showcustominfosection.left时将显示在页索引前,为showcustominfosection.right时将显示在页索引后"),
defaultvalue(showcustominfosection.never),
category("自定义信息区")]
public showcustominfosection showcustominfosection
-
รับ
-
object obj=viewstate["showcustominfosection"];
return (obj==null)?showcustominfosection.never:(showcustominfosection)obj;
-
set{viewstate["showcustominfosection"]=value;}
-
/// <summary>
/// 获取或设置用户自定义信息区文本的对齐方式。
/// </summary>
[browsable(true),
category("自定义信息区"),
defaultvalue(horizontalalign.left),
description("用户自定义信息区文本的对齐方式")]
public horizontalalign custominfotextalign
-
รับ
-
object obj=viewstate["custominfotextalign"];
return (obj==null)?horizontalalign.left:(horizontalalign)obj;
-
ชุด
-
viewstate["custominfotextalign"]=value;
-
-
/// <summary>
/// 获取或设置用户自定义信息区的宽度。
/// </summary>
[browsable(true),
category("自定义信息区"),
defaultvalue(typeof(unit),"40%"),
description("用户自定义信息区的宽度")]
public unit custominfosectionwidth
-
รับ
-
object obj=viewstate["custominfosectionwidth"];
return (obj==null)?unit.percentage(40):(unit)obj;
-
ชุด
-
viewstate["custominfosectionwidth"]=value;
-
-
/// <summary>
/// 获取或设置应用于用户自定义信息区的级联样式表类名。
/// </summary>
[browsable(true),
category("自定义信息区"),
defaultvalue(null),
คำอธิบาย
public string custominfoclass
-
รับ
-
object obj=viewstate["custominfoclass"];
return (obj==null)?cssclass:(string)obj;
-
ชุด
-
viewstate["custominfoclass"]=value;
-
-
/// <summary>
/// 获取或设置应用于用户自定义信息区的css样式文本。
/// </summary>
/// <value>字符串值,要应用于用户自定义信息区的css样式文本。</value>
[browsable(true),
category("自定义信息区"),
defaultvalue(null),
description("应用于用户自定义信息区的css样式文本")]
public string custominfostyle
-
รับ
-
object obj=viewstate["custominfostyle"];
return (obj==null)?getstylestring():(string)obj;
-
ชุด
-
viewstate["custominfostyle"]=value;
-
-
/// <summary>
/// 获取或设置在显示在用户自定义信息区的用户自定义文本。
/// </summary>
[browsable(true),
category("自定义信息区"),
defaultvalue(null),
คำอธิบาย
public string custominfotext
-
รับ
-
return (string)viewstate["custominfotext"];
-
ชุด
-
viewstate["custominfotext"]=value;
-
-
#endregion
#region others
/// <summary>
/// 获取或设置一个值,该值指定是否总是显示aspnetpager分页按件,即使要分页的数据只有一页。
/// </summary>
/// <remarks>
/// 默认情况下,当要分页的数据小于两页时,aspnetpager不会在页面上显示任何内容,将此属性值设为true时,即使总页数只有一页,aspnetpager也将显示分页导航元素。
/// </remarks>
[browsable(true),
category("behavior"),
defaultvalue(false),
description("总是显示分页控件,即使要分页的数据只要一页")]
public bool alwaysshow
-
รับ
-
object obj=viewstate["alwaysshow"];
return (obj==null)?false:(bool)obj;
-
ชุด
-
viewstate["alwaysshow"]=value;
-
-
/// <summary>
/// 获取或设置由aspnetpager 服务器控件在客户端呈现的级联样式表(css) 类。
/// </summary>
[browsable(true),
description("应用于控件的css类名"),
category("appearance"),
defaultvalue(null)]
public override string cssclass
-
get{return base.cssclass;}
ชุด
-
base.cssclass=value;
cssclassname=value;
-
-
/// <summary>
/// 获取或设置一个值,该值指示aspnetpager 服务器控件是否向发出请求的客户端保持自己的视图状态,该属性经重写后不允许设为false。
/// </summary>
/// <remarks><see cref="aspnetpager"/> 服务器控件将一些重要的分页信息保存在viewstate中,当使用url分页方式时,虽然视图状态在分页过程中没有任何作用,但若当前页需要回发,则必须启用视图状态以便分页控件能在页面回发后获取回发前的分页状态;当通过页面回发(postback)的方式来分页时,要使aspnetpager正常工作,必须启用视图状态。
/// <p><note>该属性并不能禁止用户用<![cdata[<%@page enableviewstate=false%> ]]>页指令来禁用整个页面的视图状态,当使用此指令并且设置aspnetpager通过页面回发来分页时,aspnetpager因为无法获取保存的信息而不能正常工作。</note></p></remarks>
[browsable(false),
description("是否启用控件的视图状态,该属性的值必须为true,不允许用户设置。"),
defaultvalue(true),
category("behavior")]
public override bool enableviewstate
-
รับ
-
return base.enableviewstate;
-
ชุด
-
base.enableviewstate=true;
-
-
/// <summary>
/// 获取或设置当用户输入的页索引超出范围(大于最大页索引或小于最小页索引)时在客户端显示的错误信息。
/// </summary>
[browsable(true),
description("当用户输入的页索引超出范围(大于最大页索引或小于最小页索引)时在客户端显示的错误信息。"),
defaultvalue("页数超出范围!"),
category("data")]
public string pageindexoutofrangeerrorstring
-
รับ
-
object obj=viewstate["pageindexoutofrangeerrorstring"];
return (obj==null)?"页数超出范围!":(string)obj;
-
ชุด
-
viewstate["pageindexoutofrangeerrorstring"]=value;
-
-
/// <summary>
/// 获取或设置当用户输入无效的页索引(负值或非数字)时在客户端显示的错误信息。
/// </summary>
[browsable(true),
description("当用户输入无效的页索引(负值或非数字)时在客户端显示的错误信息。"),
defaultvalue("页索引无效!"),
category("data")]
public string invalidpageindexerrorstring
-
รับ
-
object obj=viewstate["invalidpageindexerrorstring"];
return (obj==null)?"页索引无效!":(string)obj;
-
ชุด
-
viewstate["invalidpageindexerrorstring"]=value;
-
-
#endregion
#endregion
#region control rendering logic
/// <summary>
/// 重写<see cref="system.web.ui.control.onload"/> 方法。
/// </summary>
/// <param name="e">包含事件数据的<see cref="eventargs"/> 对象。</param>
protected override void onload(eventargs e)
-
if(urlpaging)
-
currenturl=page.request.path;
urlparams=page.request.querystring;
string pageindex=page.request.querystring[urlpageindexname];
int index=1;
พยายาม
-
index=int.parse(pageindex);
-
จับ {}
onpagechanged(new pagechangedeventargs(index));
-
อื่น
-
inputpageindex=page.request.form[this.uniqueid+"_input"];
-
base.onload(e);
-
/// <summary>
/// 重写<see cref="system.web.ui.control.onprerender"/>方法。
/// </summary>
/// <param name="e">包含事件数据的<see cref="eventargs"/> 对象。</param>
protected override void onprerender(eventargs e)
-
if(pagecount>1)
-
string checkscript="<script language="javascript">function docheck(el){var r=new regexp("^s*(d+)s*$");if(r.test(el.value)){if(regexp.$1<1||regexp.$1>"+pagecount.tostring()+"){alert(""+pageindexoutofrangeerrorstring+"");document.all['"+this.uniqueid+"_input'].select();return false;}return true;}alert(""+invalidpageindexerrorstring+"");document.all['"+this.uniqueid+"_input'].select();return false;}</script>";
if((showinputbox==showinputbox.always)||(showinputbox==showinputbox.auto&&pagecount>=showboxthreshold))
-
if(!page.isclientscriptblockregistered("checkinput"))
page.registerclientscriptblock("checkinput",checkscript);
string script="<script language="javascript" > <!-- nfunction buildurlstring(key,value){ var _key=key.tolowercase(); var prms=location.search; if(prms.length==0) return location.pathname+"?"+_key+"="+value; var params=prms.substring(1).split("&"); var newparam=""; var found=false; for(i=0;i<params.length;i++){ if(params[i].split("=")[0].tolowercase()==_key){ params[i]=_key+"="+value; found=true; break; } } if(found) return location.pathname+"?"+params.join("&"); else return location+"&"+_key+"="+value; }n//--> </script>";
if(!page.isclientscriptblockregistered("buildurlscript"))
page.registerclientscriptblock("buildurlscript",script);
-
-
base.onprerender(e);
-
/// <summary>
/// 重写<see cref="system.web.ui.webcontrols.webcontrol.addattributestorender"/> 方法,将需要呈现的html 属性和样式添加到指定的<see cref="system.web.ui.htmltextwriter"/> 中
/// </summary>
/// <param name="writer"></param>
protected override void addattributestorender(htmltextwriter writer)
-
if(this.page!=null)
this.page.verifyrenderinginserverform(this);
base.addattributestorender(writer);
-
/// <summary>
///重写<see cref="system.web.ui.webcontrols.webcontrol.renderbegintag"/> 方法,将<see cref="aspnetpager"/> 控件的html 开始标记输出到指定的<see cref="system.web.ui.htmltextwriter"/> 编写器中。
/// </summary>
///<param name="writer"><see cref="system.web.ui.htmltextwriter"/>,表示要在客户端呈现html 内容的输出流。</param>
public override void renderbegintag(htmltextwriter writer)
-
bool showpager=(pagecount>1||(pagecount<=1&&alwaysshow));
writer.writeline();
writer.write("<!------------------------------ ");
writer.write("aspnetpager v4.3 start");
writer.writeline ("--------------------------------------------- -------------------------------------------------- -------------------------------------------------- --------------
writer.write("<!-------------------- ");
writer.write("copyright:2003 webdiyer(www.webdiyer.com)");
writer.write(" ---------------------");
writer.writeline(">");
base.renderbegintag(writer);
if(!showpager)
-
writer.write("<!-----因为总页数只有一页,并且alwaysshow属性设为false,aspnetpager不显示任何内容,若要在总页数只有一页的情况下显示aspnetpager,请将alwaysshow属性设为true!");
writer.write("----->");
-
if((showcustominfosection==showcustominfosection.left||showcustominfosection==showcustominfosection.right)&&showpager)
-
writer.addattribute(htmltextwriterattribute.width,"100%");
writer.addattribute(htmltextwriterattribute.style,getstylestring());
if(height!=unit.empty)
writer.addstyleattribute(htmltextwriterstyle.height,height.tostring());
writer.addattribute(htmltextwriterattribute.border,"0");
writer.addattribute(htmltextwriterattribute.cellpadding,"0");
writer.addattribute(htmltextwriterattribute.cellspacing,"0");
writer.renderbegintag(htmltextwritertag.table);
writer.renderbegintag(htmltextwritertag.tr);
writecellattributes(writer,true);
writer.renderbegintag(htmltextwritertag.td);
-
-
/// <summary>
///重写<see cref="system.web.ui.webcontrols.webcontrol.renderendtag"/> 方法,将<see cref="aspnetpager"/> 控件的html 结束标记输出到指定的<see cref="system.web.ui.htmltextwriter"/> 编写器中。
/// </summary>
///<param name="writer"><see cref="system.web.ui.htmltextwriter"/>,表示要在客户端呈现html 内容的输出流。</param>
public override void renderendtag(htmltextwriter writer)
-
if((showcustominfosection==showcustominfosection.left||showcustominfosection==showcustominfosection.right)&&(pagecount>1||(pagecount<=1&&alwaysshow)))
-
writer.renderendtag();
writer.renderendtag();
writer.renderendtag();
-
base.renderendtag(writer);
writer.writeline();
writer.write("<!------------------------------- ");
writer.write("aspnetpager v4.3 end");
writer.write(" --------------------------------");
writer.writeline(">");
writer.writeline();
-
/// <summary>
/// Rewrite the <see Cref = "System.web.ui.webControls.webControl.RenderContents" method to present the content of the control to the specified <see cref = "System.web.ui.htmlTextWriter"/> In the อุปกรณ์.
/// </summary>
/// <param name="writer"><see cref="system.web.ui.htmltextwriter"/>,表示要在客户端呈现html 内容的输出流。</param>
protected override void rendercontents(htmltextwriter writer)
-
if(pagecount<=1&&!alwaysshow)
กลับ;
if(showcustominfosection==showcustominfosection.left)
-
writer.write(custominfotext);
writer.renderendtag();
writecellattributes(writer,false);
writer.addattribute(htmltextwriterattribute.class,cssclass);
writer.renderbegintag(htmltextwritertag.td);
-
int midpage=(int)((currentpageindex-1)/numericbuttoncount);
int pageoffset=midpage*numericbuttoncount;
int endpage=((pageoffset+numericbuttoncount)>pagecount)?pagecount:(pageoffset+numericbuttoncount);
this.createnavigationbutton(writer,"first");
this.createnavigationbutton(writer,"prev");
if(showpageindex)
-
if(currentpageindex>numericbuttoncount)
createmorebutton(writer,pageoffset);
for(int i=pageoffset+1;i<=endpage;i++)
-
createnumericbutton(writer,i);
-
if(pagecount>numericbuttoncount&&endpage<pagecount)
createmorebutton(writer,endpage+1);
-
this.createnavigationbutton(writer,"next");
this.createnavigationbutton(writer,"last");
if((showinputbox==showinputbox.always)||(showinputbox==showinputbox.auto&&pagecount>=showboxthreshold))
-
writer.write(" ");
if(textbeforeinputbox!=null)
writer.write(textbeforeinputbox);
writer.addattribute(htmltextwriterattribute.type,"text");
writer.addstyleattribute(htmltextwriterstyle.width,"30px");
writer.addattribute(htmltextwriterattribute.value,currentpageindex.tostring());
if(inputboxstyle!=null&&inputboxstyle.trim().length>0)
writer.addattribute(htmltextwriterattribute.style,inputboxstyle);
if(inputboxclass!=null&&inputboxclass.trim().length>0)
writer.addattribute(htmltextwriterattribute.class,inputboxclass);
if(pagecount<=1&&alwaysshow)
writer.addattribute(htmltextwriterattribute.readonly,"true");
writer.addattribute(htmltextwriterattribute.name,this.uniqueid+"_input");
string scriptref="docheck(document.all['"+this.uniqueid+"_input'])";
string postref="if(event.keycode==13){if("+scriptref+")__dopostback('"+this.uniqueid+"',document.all['"+this.uniqueid+"_input'].value);else{event.returnvalue=false;}}";
string keydownscript="if(event.keycode==13){if("+scriptref+"){even
csover 发表于:2006.07.21 08:46 ::分类: ( asp.net ) ::阅读:(464次) :: 评论(0) :: 引用(0)
2006 年07 月20日, 星期四
一个简单的分页控件
采用datagrid的默任的分页方式分页,后来发现对于大的数据量速度很慢,net进程占用系统资源也很大,后来写了个分页的存储过程,每次取数据都只取当前页的,分页是分好了,但是发现翻页就没那么方便了,于是自己写了个简单的分页控件,代码如下(编译以后直接形成dll就可以用)。
sample code:
ใช้ระบบ
ใช้ system.web.ui;
ใช้ System.web.ui.webcontrols;
using system.componentmodel;
namespace pageinfocontrol
-
/// <summary>
///webcustomecontrol1的摘要说明
/// </summary>
[defaultproperty('totalrecord'),toolboxdata('<{0}:pageinfo runat=server></{0}:pageinfo>')]
public class pageinfo:system.web.ui.webcontrols.webcontrol,ipostbackeventhandler
-
#region construct method
/// <summary>
///构造函数
/// </summary>
public pageinfo():base(htmltextwritertag.div)
-
-
#endregion
#region variables and constants
public event eventhandler changepageclick;
private string _barbackgroudcolor='#f1f1f1';
private string _barlinkcolor='navy';
private string _barcurrentcolor='#eeeeee';
private int _totalrecord=0;
private int _totalpage=0;
private int _currentpageindex=1;
private int _itemsize=10;
#endregion
#region properties
[description('分页条背景色'),bindable(true),category('appearance'),defaultvalue('#f1f1f1')]
public string barbackgroundcolor
-
get{return _barbackgroundcolor;}
set{_barbackgroundcolor=value;}
-
[description('分页条带链接数字颜色'),bindable(true),category('appearance'),defaultvalue('navy')]
public string barlinkcolor
-
get{return _barlinkcolor;}
set{_barlinkcolor=value;}
}[description('分页条当前页数字颜色'),bindable(true),category('appearance'),defaultvalue('#eeeeee')]
public string barcurrentcolor
-
get{return _barcurrentcolor;}
set{_barcurrentcolor=value;}
} [description('总记录数'),bindable(false),category('behavior'),defaultvalue(0)]
public int totalrecord
-
get{return _totalrecord;}
ชุด
-
foreach(char c in system.convert.tostring(value))
-
if(!char.isnumber(c)
-
_totalrecord=0;
หยุดพัก;
-
_totalrecord=value;
-
} [description('每页显示记录数'),bindable(true),category('behavior'),defaultvalue(0)]
public int pagesize
-
get{return _pagesize;}
ชุด
-
foreach(char c in system.convert.tostring(value))
-
if(!char.isnumber(c))
-
_pagesize=0;
หยุดพัก;
-
-
_pagesize=value;
-
}[description('总页数'),bindable(true),category('behavior'),defaultvalue(0)]
public int totalpage
-
get{return _totalpage;}
}[description('数字规格'),bindable(true),category('behavior'),defaultvalue(10)]
public int itemsize
-
get{return _itemsize;}
ชุด
-
foreach(char c in system.convert.tostring(value))
-
if(!char.isnumber(c))
-
_itemsize=10;
หยุดพัก;
-
-
_itemsize=value;
-
}[description('当前页值'),bindable(true),category('behavior'),defaultvalue(1)]
public int currentpageindex
-
get{return _currentpageindex;}
set{_currentpageindex=value;}
-
#endregion
//定义div的样式
protected override void addattributestorender(htmltextwriter writer)
-
writer.addstyleattribute('white-space','nowrap');
writer.addstyleattribute('padding-top','2px');
writer.addstyleattribute('padding-bottom',2px');
writer.addstyleattribute('width',width.tostring());
writer.addstyleattribute('height',height.tostring());
base.addattributestorender(writer);
-
protected virtual void onpagechangeclick(eventargs e)
-
if(changepageclick!=null)
-
changepageclick(this,e);
-
} public void raisepostbackevent(string eventargument)
-
int pageindex=int.parse(eventargument);
this._currentpageindex=pageindex;
onpagechangeclick(new eventargs());
-
/// <summary>
///将此控件呈现给指定的输出参数
/// </summary>
///<param name='output'>要写出到的html编写器</param>
protected override void rendercontents(htmltextwriter output)
{this._totalpage=((this.totalrecord/pagesize)*this.pagesize==this.totalrecord)?(this.totalrecord/this.pagesize):((this.totalrecord/this.pagesize)+1);
int beginrecord=(this.currentpageindex-1)*this.pagesize+1;
int endrecord=this.currentpageindex*this.pagesize;
string pageinfo='[共<font color=#cc0000>'+this.totalpage.tostring()+'</font>页/当前第<font color=#cc0000>'+this.currentpageindex.tostring()+'</font>页共<font color=#cc0000>'+totalrecord.tostring()+'</font>条记录,当前记录数<font color=#cc0000>'+begingrecord.tostring()+'</font>到<font color=#cc0000>'+endrecord.tostring()+'</font>]';
string pageliststr='';
string pageindexcolor='#0000c0';
int singlenumber=this.totalpage-(totalpage/itemsize)*itemsize; //得到分页后的尾数(比如:总共58页,按10页规格显示,则尾数为8)
int intpageformax=(this.currentpageindex-1)/itemsize;
int minint=(1+itemsize*intpageformax);
int maxint=((intpageformax+1)*itemsize)>totalpage?totalpage:((intpageformax+1)*itemsize);
if(this.totalrecord==0||this.totalpage==0)
-
pageliststr='<font color='+pageindexcolor+'>0</font>';
pageliststr=pageliststr+'[共<font color=#cc0000>0</font>页/当前第<font color=#cc0000>0</font>页共<font color=#cc0000>0</font>条记录,当前记录数<font color=#cc0000>0</font>到<font color=#cc0000>0</font>]';
output.write(pageliststr);
-
อื่น
-
if(this.totalpage<=this.itemsize)
-
for(int i=1;i<=totalpage;i++)
-
pageindexcolor=currentpageindex==i?'#cc0000':'#0000c0';
if(currentpageindex==i)
pageliststr=pageliststr+'<a title='当前为第['+i+']页' href='#' id=''+this.uniqueid+''><font color='+pageindexcolor+'>'+i.tostring()+'</font></a>';
อื่น
pageliststr=pageliststr+'<a title='点击转到第['+i+']页' id=''+this.uniqueid+'' href=' javascript:'+page.getpostbackeventreference(this,i.tostring())+''><font color='+pageindexcolor+'>'+i.tostring()+'</font></a>';
-
pageliststr=pageliststr==''?'<font color='+pageindexcolor+'>0</font>':pageliststr;
pageliststr=pageliststr+''+pageinfo;
output.write(pageliststr);
-
อื่น
-
for(int i=minint;i<=maxint;i++)
-
pageindexcolor=currentpageindex==i?'#cc0000':'#0000c0';
if(currentpageindex==i)
pageliststr=pageliststr+'<a title='当前为第['+i+']页' href='#' id=''+this.uniqueid+''><font color='+pageindexcolor+'>'+i.tostring()+'</font></a>';
อื่น
pageliststr=pageliststr+'<a title='点击转到第['+i+']页' id=''+this.uniqueid+'' href=' javascript:'+page.getpostbackeventreference(this,i.tostring())+''><font color='+pageindexcolor+'>'+i.tostring()+'</font></a>';
-
//当当前页数小于itemsize且总的页数大于itemsize时
if(currentpageindex<=itemsize && totalpage>itemsize)
-
pageliststr=pageliststr+'<a id=''+this.uniqueid+'' title='点击转到第['+system.convert.tostring(itemsize+1)+']页' href=' javascript:'+page.getpostbackeventreference(this.system.convert.tostring(itemsize+1))+''>>></a>';
//当当前页数大于itemsize,且总的页数减去当前页数大于等于尾数值页数时
if(this.currentpageindex>itemsize && (totalpage-this.currentpageindex)>=singlenumber)
-
int multiminpageindex=(intpageformax*itemsize);
int multimaxpageindex=((intpageformax+1)*itemsize)+1;
pageliststr='<a id=''+this.uniqueid+'' title='点击转到第['+multiminpageindex+']页' href=' javascrcipt:'+page.getpostbackeventreference(this.multiminpageindex.tostring())+''><<</a>'+pageliststr.trim()+'<a id=''+this.uniqueid+'' title='点击转到第['+multimaxpageindex+']页' href=' javascript:'+page.getpostbackeventreference(this.multimaxpageindex.tostring())+''>>></a>';
-
//当当前页数大于itemsize,且总的页数减去当前页数大于等于尾数值页数时
if(currentpageindex>10 && (totalpage-currentpageindex)<singlenumber)
-
int multiminpageindex=(intpageformax * itemsize);
pageliststr='<a id=''+this.uniqueid+'' title='点击转到第['+multiminpageindex+']页' href=' javascript:'+page.getpostbackeventreference(this,multiminpageindex.tostring ())+''><<</a>'+pageliststr.trim();
-
pageliststr=pageliststr==''?'<font color='+pageindexcolor+'>0</font>':pageliststr;
pageliststr=pageliststr+''+pageinfo;
output.write(pageliststr);
-
-
base.rendercontents(output);
-
-
-
控件中有几个相关的属性,在使用的时候,只需要指定:totalrecord(总记录数)、pagesize(每页的数据记录数)、currentpageindex(当前页面值)、itemsize(分页条显示页面值的规格)
控件中有个changepageclick事件,可以利用“控件id.currentpageindex”属性来获取当前页面值。
注册会员,创建你的web开发资料库,