Repeater控件與PagedDataSource結(jié)合實(shí)現(xiàn)分頁功能
本文講解Repeater控件與PagedDataSource相結(jié)合實(shí)現(xiàn)其分頁功能。PagedDataSource 類封裝那些允許數(shù)據(jù)源控件(如 DataGrid、GridView)執(zhí)行分頁操作的屬性。如果控件開發(fā)人員需對(duì)自定義數(shù)據(jù)綁定控件提供分頁支持,即可使用此類。
PagedDataSource 類的部分公共屬性:
AllowCustomPaging // 獲取或設(shè)置指示是否啟用自定義分頁的值。 AllowPaging // 獲取或設(shè)置指示是否啟用分頁的值。 Count // 獲取要從數(shù)據(jù)源使用的項(xiàng)數(shù)。 CurrentPageIndex // 獲取或設(shè)置當(dāng)前頁的索引。 DataSource // 獲取或設(shè)置數(shù)據(jù)源。 DataSourceCount // 獲取數(shù)據(jù)源中的項(xiàng)數(shù)。 FirstIndexInPage // 獲取頁中的第一個(gè)索引。 IsCustomPagingEnabled // 獲取一個(gè)值,該值指示是否啟用自定義分頁。 IsFirstPage // 獲取一個(gè)值,該值指示當(dāng)前頁是否是首頁。 IsLastPage // 獲取一個(gè)值,該值指示當(dāng)前頁是否是最后一頁。 IsPagingEnabled // 獲取一個(gè)值,該值指示是否啟用分頁。 IsReadOnly // 獲取一個(gè)值,該值指示數(shù)據(jù)源是否是只讀的。 IsSynchronized // 獲取一個(gè)值,該值指示是否同步對(duì)數(shù)據(jù)源的訪問(線程安全)。 PageCount // 獲取顯示數(shù)據(jù)源中的所有項(xiàng)所需要的總頁數(shù)。 PageSize // 獲取或設(shè)置要在單頁上顯示的項(xiàng)數(shù)。 VirtualCount // 獲取或設(shè)置在使用自定義分頁時(shí)數(shù)據(jù)源中的實(shí)際項(xiàng)數(shù)。
下面是PagedDataSource類實(shí)現(xiàn)Repeater控件的分頁顯示例子,如圖:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
int pageIndex = 1;
try
{
pageIndex = Convert.ToInt32(Request.QueryString["Page"]);
if (pageIndex <= 0) pageIndex = 1;
}
catch
{
pageIndex = 1;
}
DataTable dt = GetDocumentTable();
PagedDataSource pds = new PagedDataSource();
pds.DataSource = dt.DefaultView; // 設(shè)置數(shù)據(jù)源
pds.AllowPaging = true; // 設(shè)置指示是否啟用分頁的值
pds.PageSize = 5; // 設(shè)置要在每頁顯示的數(shù)量
pds.CurrentPageIndex = pageIndex - 1; // 設(shè)置當(dāng)前頁的索引。
rptDocumentList.DataSource = pds;
rptDocumentList.DataBind();
ltlPageBar.Text = GetPageBar(pds);
}
}
// 分頁條
private string GetPageBar(PagedDataSource pds)
{
string pageBar = string.Empty;
int currentPageIndex = pds.CurrentPageIndex + 1;
if (currentPageIndex == 1)
{
pageBar += "首頁";
}
else
{
pageBar += " + Request.CurrentExecutionFilePath + "?Page=1">首頁";
}
if ((currentPageIndex - 1) < 1)
{
pageBar += "上一頁";
}
else
{
pageBar += " + Request.CurrentExecutionFilePath + "?Page=" + (currentPageIndex - 1) + "">上一頁";
}
if ((currentPageIndex + 1) > pds.PageCount)
{
pageBar += "下一頁";
}
else
{
pageBar += " + Request.CurrentExecutionFilePath + "?Page=" + (currentPageIndex + 1) + "">下一頁";
}
if (currentPageIndex == pds.PageCount)
{
pageBar += "末頁";
}
else
{
pageBar += " + Request.CurrentExecutionFilePath + "?Page=" + pds.PageCount + "">末頁";
}
return pageBar;
}
// 創(chuàng)建測試表
DataTable GetDocumentTable()
{
DataTable dt = new DataTable();
dt.Columns.Add("DocumentId", typeof(int));
dt.Columns.Add("Title", typeof(string));
for (int i = 1; i <= 30; i++)
{
DataRow row = dt.NewRow();
row["DocumentId"] = i;
row["Title"] = "文檔標(biāo)題 " + i + "";
dt.Rows.Add(row);
}
return dt;
}
- asp.net使用Repeater控件中的全選進(jìn)行批量操作實(shí)例
- ASP.NET中repeater控件用法實(shí)例
- 在Repeater控件中通過Eval的方式綁定Style樣式代碼
- Repeater控件實(shí)現(xiàn)編輯、更新、刪除等操作示例代碼
- 給Repeater控件里添加序號(hào)的5種才常見方法介紹
- Repeater控件綁定的三種方式
- Repeater控件動(dòng)態(tài)變更列(Header,Item和Foot)信息實(shí)現(xiàn)思路
- 如何取得Repeater控件選擇的項(xiàng)目及注意事項(xiàng)
- Repeater控件分別綁定數(shù)組和ArrayList實(shí)現(xiàn)思路
- Repeater控件數(shù)據(jù)導(dǎo)出Excel(附演示動(dòng)畫)
- 淺析Repeater控件的使用 (原樣導(dǎo)出和動(dòng)態(tài)顯示/隱藏Repeater中的列)
相關(guān)文章
詳解如何在ASP.NET Core Web API中以三種方式返回?cái)?shù)據(jù)
這篇文章主要介紹了詳解如何在ASP.NET Core Web API中以三種方式返回?cái)?shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
asp.net靜態(tài)方法彈出對(duì)話框?qū)崿F(xiàn)思路
為菜鳥所準(zhǔn)備……其實(shí)就是彈出JavaScript小窗口,總得來說就是定義的一個(gè)DIV,感興趣的朋友可以了解下,或許對(duì)你學(xué)習(xí)asp.net有所幫助2013-02-02
實(shí)現(xiàn)onmouseover和onmouseout應(yīng)用于RadioButtonList或CheckBoxList控件上
一直想實(shí)現(xiàn)onmouseover和onmouseout應(yīng)用于RadioButtonList或CheckBoxList控件上。此功能就是當(dāng)鼠標(biāo)經(jīng)過時(shí)RadioButtonList或CheckBoxList每一個(gè)Item時(shí),讓Item有特效顯示,離開時(shí),恢復(fù)原樣有演示動(dòng)畫,感興趣的朋友可以了解下啊2013-01-01
手把手教你AspNetCore WebApi認(rèn)證與授權(quán)的方法
這篇文章主要介紹了手把手教你AspNetCore WebApi認(rèn)證與授權(quán)的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
如何使用.NET8 創(chuàng)建使用MySQL數(shù)據(jù)庫的webapi項(xiàng)目
這篇文章主要介紹了如何使用.NET8 創(chuàng)建使用MySQL數(shù)據(jù)庫的webapi項(xiàng)目,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04
VS2019中.NET如何實(shí)現(xiàn)打日志功能
本文主要介紹了VS2019中.NET如何實(shí)現(xiàn)打日志功能,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
asp.net頁面與頁面之間傳參數(shù)值方法(post傳值和get傳值)
這篇文章主要介紹了asp.net頁面與頁面之間傳參數(shù)值方法,說明了post傳值和get傳值的使用方法,需要的朋友可以參考下2014-02-02
淺談.Net Core 認(rèn)證系統(tǒng)源碼解析
這篇文章主要介紹了淺談.Net Core 認(rèn)證系統(tǒng)源碼解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12

