首頁  >  文章  >  後端開發  >  asp.net下Repeater使用 AspNetPager分頁控件

asp.net下Repeater使用 AspNetPager分頁控件

高洛峰
高洛峰原創
2017-01-10 14:11:461592瀏覽

一、AspNetPager分頁控制 
分頁是Web應用程式中最常使用的功能之一,在ASP.NET中,雖然自帶了一個可以分頁的DataGrid(asp.net 1.1)和GridView(asp.net 2.0)控件,但其分頁功能並不盡如人意,如可定制性差、無法通過Url實現分頁功能等,而且有時我們需要對DataList和Repeater甚至自定義數據綁定控件進行分頁,手工編寫分頁代碼不僅技術難度大、任務繁瑣且程式碼重複使用率極低,因此分頁已成為許多ASP.NET程式設計師最頭痛的問題之一。
AspNetPager針對ASP.NET分頁控制項的不足,提出了與眾不同的解決asp.net中分頁問題的方案,即將分頁導航功能與資料顯示功能完全獨立開來,由使用者自己控制資料的取得及顯示方式,因此可以靈活地應用於任何需要實現分頁導航功能的地方,例如為GridView、DataList以及Repeater等數據綁定控制項實現分頁、呈現自定義的分頁數據以及製作圖片瀏覽程序等,因為AspNetPager控件和數據是獨立的,因此要分頁的資料可以來自任何資料來源,如SQL Server、Oracle、Access、mysql、DB2等資料庫以及XML檔案、記憶體資料或快取中的資料、檔案系統等等。
二、基本屬性: 
AlwaysShow: 
預設情況下,當要分頁的資料只有一頁時,AspNetPager預設會自動危險期而不在頁面上顯示任何可見內容,將此屬性值設為true時,即使總頁數只有一頁,AspNetPager也會顯示分頁導覽元素。 
FirstPageText: 
取得或設定為第一頁按鈕顯示的文字。 
LastPageText: 
取得或設定為最後一頁按鈕顯示的文字。 
NextPageText: 
取得或設定為下一頁按鈕顯示的文字。 
PrevPageText: 
取得或設定為上一頁按鈕顯示的文字。 
PageSize: 
取得或設定每頁顯示的項目數。 (此值取得或設定資料呈現控制項每次要顯示資料表中的資料的項數,AspNetPager會根據該值和RecordCount 來計算顯示所有資料所需的總頁數,即PageCount的值。) 
CssClass: 

套用於控制項的css類別名稱 
CurrentPageButtonClass: 
取得或設定AspNetPager分頁控制項目前頁導覽按鈕的級聯樣式表(CSS) 類別。 
PageIndexBoxType: 
或或設定頁索引框的顯示類型,可以是允許使用者手動輸入的文字方塊和只能選擇的下拉方塊。 
ShowBoxThreshold: 
當 ShowPageIndexBox 設為Auto(預設)且要分頁的資料的總頁數達到該值時會自動顯示頁索引輸入文字框,預設值為30。此選項當 ShowPageIndexBox 設為Never或Always時沒有任何作用。
三、風格樣式: 
===== 網易風格===== 
.anpager .cpb {background:#1F3A87 none repeat scroll 0 0;border:1px solid #CCCCCC;color:#FFFFFF;font-weightFFFF :bold;margin:5px 4px 0 0;padding:4px 5px 0;} 
.anpager a {background:#FFFFFF none repeat scroll 0 0;border:1px solid #CCCCCCpcolor:#1F3A87 ;padding:4px 5px 0;text-decoration:none} 
.anpager a:hover{background:#1F3A87 none repeat scroll 0 0;border:1px solid #1F3A87;color:#FFFFFF anpager" CurrentPageButtonClass="cpb" 
===== 拍拍網風格===== 
.paginator { font: 11px Arial, Helvetica, sans-serif;padding:10px 20px 10px 0; .paginator a {padding: 1px 6px; border: solid 1px #ddd; background: #fff; text-decoration: none;margin-right:2px} 
.paginator a:visited {padding: 1px 6pvid ddd; background: #fff; text-decoration: none;} 
.paginator .cpb {padding: 1px 6px;font-weight: bold; font-size: 13px;border:none} 
.paginator a:hover {color: #fff; background: #ffa501;border-color:#ffa501;text-decoration: none;} 
屬性設定:CssClass="paginator" CurrentPageButtonClass="cpb" 
===== 迅雷風格===== 
.pages { color: #999; } 
.pages a, .pages .cpb { text-decoration:none;float: left; padding: 0 5px; border: 1px solid #ddd;background: #ffff;margin:0 2px ; font-size:11px; color:#000;} 
.pages a:hover { background-color: #E61636; color:#fff;border:1px solid #E61636; text-decoration:none;border:1px solid #E61636; text-decoration:none;border:1px solid #E61636; text-decoration:none;} s .page cpb { font-weight: bold; color: #fff; background: #E61636; border:1px solid #E61636;} 
屬性設定:CssClass="pages" CurrentPageButtonClass="cpb"asp
屬性設定:CssClass="pages" CurrentPageButtonClass="cpb"asp
屬性設定:CssClass="pages" CurrentPageButtonClass="cpb"asp
屬性設定:CssClass="pages" CurrentPageButtonClass="cpb"asp
、文件 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %> 
<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %> 
<%@ Register src="hand.ascx" tagname="hand" tagprefix="uc1" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
<title></title> 
<link href="inc/css.css" rel="stylesheet" type="text/css" /> 
<style type="text/css"> 
/*网易风格*/ 
.anpager .cpb {background:#1F3A87 none repeat scroll 0 0;border:1px solid #CCCCCC;color:#FFFFFF;font-weight:bold;margin:5px 4px 0 0;padding:4px 5px 0;} 
.anpager a {background:#FFFFFF none repeat scroll 0 0;border:1px solid #CCCCCC;color:#1F3A87;margin:5px 4px 0 0;padding:4px 5px 0;text-decoration:none} 
.anpager a:hover{background:#1F3A87 none repeat scroll 0 0;border:1px solid #1F3A87;color:#FFFFFF;} 
/*拍拍网风格*/ 
.paginator { font: 11px Arial, Helvetica, sans-serif;padding:10px 20px 10px 0; margin: 0px;} 
.paginator a {padding: 1px 6px; border: solid 1px #ddd; background: #fff; text-decoration: none;margin-right:2px} 
.paginator a:visited {padding: 1px 6px; border: solid 1px #ddd; background: #fff; text-decoration: none;} 
.paginator .cpb {padding: 1px 6px;font-weight: bold; font-size: 13px;border:none} 
.paginator a:hover {color: #fff; background: #ffa501;border-color:#ffa501;text-decoration: none;} 
/*迅雷风格*/ 
.pages { color: #999 } 
.pages a, .pages .cpb { text-decoration:none;float: left; padding: 0 5px; border: 1px solid #ddd;background: #ffff;margin:0 2px; font-size:11px; color:#000;} 
.pages a:hover { background-color: #E61636; color:#fff;border:1px solid #E61636; text-decoration:none;} 
.pages .cpb { font-weight: bold; color: #fff; background: #E61636; border:1px solid #E61636;} 
.code{font-weight:bold;color:blue} 
</style> 
</head> 
<body> 
<form id="form1" runat="server"> 
<uc1:hand ID="hand1" runat="server" /> 
<div style="text-align:left; line-height:20px"> 
<asp:Repeater ID="SoftDown" runat="server"> 
<ItemTemplate> 
<div style="border-bottom:1px solid #000000"><%#Eval("E_id")%> <%#Eval("Class")%><br><%#Eval("DownTitle")%><br><%#Eval("PageHome")%></div> 
</ItemTemplate> 
</asp:Repeater> 
<div style="text-align:right; padding-top:10px"> 
<webdiyer:AspNetPager ID="AspNetPager1" runat="server" pagesize="5" CssClass="anpager" onpagechanged="AspNetPager1_PageChanged" 
FirstPageText="首页" LastPageText="尾页" NextPageText="下一页" PrevPageText="上一页" 
ShowMoreButtons="False" ShowPageIndexBox="Never"> 
</webdiyer:AspNetPager></div> 
</div> 
</form> 
</body> 
</html>

index.aspx.cs 

using System; 
using System.Collections; 
using System.Configuration; 
using System.Data; 
using System.Linq; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.HtmlControls; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Xml.Linq; 
using System.Data.SqlClient; 
using GHSqlConn; 
using Wuqi.Webdiyer; 
public partial class Default2 : System.Web.UI.Page 
{ 
protected void Page_Load(object sender, EventArgs e) 
{ 
if (!IsPostBack) { 
SqlConnection conn = DB.getConnection(); 
conn.Open(); 
SqlCommand Count = new SqlCommand(); 
Count.Connection = conn; 
Count.CommandText = "select count(*) from T_SoftDown1"; 
AspNetPager1.RecordCount = (int)Count.ExecuteScalar(); 
//Response.Write(AspNetPager1.RecordCount); 
conn.Close(); 
BindData(); 
} 
} 
public void BindData() 
{ 
SqlConnection conn = DB.getConnection(); 
string sql = "select * from T_SoftDown1 order by E_id desc";//这句在大型数据中应该用:select top查询语句 
SqlDataAdapter da = new SqlDataAdapter(sql, conn); 
DataSet ds = new DataSet(); 
da.Fill(ds, AspNetPager1.PageSize * (AspNetPager1.CurrentPageIndex - 1), AspNetPager1.PageSize, "temptbl"); 
DataTable dt = ds.Tables["temptbl"]; 
SoftDown.DataSource=dt; 
SoftDown.DataBind(); 
} 
protected void AspNetPager1_PageChanged(object src, EventArgs e) 
{ 
//AspNetPager1.CurrentPageIndex = e.NewPageIndex; 
BindData(); 
} 
}

更多asp.net下Repeater使用AspNetPager分頁控制相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn