asp.net下Repeater使用 AspNetPager分頁控制項

來源:互聯網
上載者:User

一、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-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;}
屬性設定:CssClass="anpager" CurrentPageButtonClass="cpb"
===== 拍拍網風格 =====
.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;}
屬性設定: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;}
.pages .cpb { font-weight: bold; color: #fff; background: #E61636; border:1px solid #E61636;}
屬性設定:CssClass="pages" CurrentPageButtonClass="cpb"
四、如何調用:
index.aspx檔案 複製代碼 代碼如下:<%@ 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();
}
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.