asp.net Repeater分頁(yè)實(shí)例(PageDataSource的使用)
更新時(shí)間:2013年04月13日 18:35:00 作者:
Asp.net提供了三個(gè)功能強(qiáng)大的列表控件:DataGrid、DataList和Repeater控件,但其中只有DataGrid控件提供分頁(yè)功能。相對(duì)DataGrid,DataList和Repeater控件具有更高的樣式自定義性,所以很多時(shí)候我們喜歡使用DataList或Repeater控件來顯示數(shù)據(jù)
Asp.net提供了三個(gè)功能強(qiáng)大的列表控件:DataGrid、DataList和Repeater控件,但其中只有DataGrid控件提供分頁(yè)功能。相對(duì)DataGrid,DataList和Repeater控件具有更高的樣式自定義性,所以很多時(shí)候我們喜歡使用DataList或Repeater控件來顯示數(shù)據(jù)。
實(shí)現(xiàn)DataList或Repeater控件的分頁(yè)顯示有幾種方法:
1、寫一個(gè)方法或存儲(chǔ)過程,根據(jù)傳入的頁(yè)數(shù)返回需要顯示的數(shù)據(jù)表(DataTable)
2、使用PagedDataSource類(位于System.Web.UI.WebControls命名空間里)
本篇文章主要說怎么使用PagedDataSource類實(shí)現(xiàn)DataList和Repeater控件的分頁(yè)顯示。DataGrid控件內(nèi)部也使用了PagedDataSource類,PagedDataSource 類封裝 DataGrid 控件的屬性,這些屬性使 DataGrid 可以執(zhí)行分頁(yè)。
PagedDataSource 類的部分公共屬性:
AllowCustomPaging 獲取或設(shè)置指示是否啟用自定義分頁(yè)的值。
AllowPaging 獲取或設(shè)置指示是否啟用分頁(yè)的值。
Count 獲取要從數(shù)據(jù)源使用的項(xiàng)數(shù)。
CurrentPageIndex 獲取或設(shè)置當(dāng)前頁(yè)的索引。
DataSource 獲取或設(shè)置數(shù)據(jù)源。
DataSourceCount 獲取數(shù)據(jù)源中的項(xiàng)數(shù)。
FirstIndexInPage 獲取頁(yè)中的第一個(gè)索引。
IsCustomPagingEnabled 獲取一個(gè)值,該值指示是否啟用自定義分頁(yè)。
IsFirstPage 獲取一個(gè)值,該值指示當(dāng)前頁(yè)是否是首頁(yè)。
IsLastPage 獲取一個(gè)值,該值指示當(dāng)前頁(yè)是否是最后一頁(yè)。
IsPagingEnabled 獲取一個(gè)值,該值指示是否啟用分頁(yè)。
IsReadOnly 獲取一個(gè)值,該值指示數(shù)據(jù)源是否是只讀的。
IsSynchronized 獲取一個(gè)值,該值指示是否同步對(duì)數(shù)據(jù)源的訪問(線程安全)。
PageCount 獲取顯示數(shù)據(jù)源中的所有項(xiàng)所需要的總頁(yè)數(shù)。
PageSize 獲取或設(shè)置要在單頁(yè)上顯示的項(xiàng)數(shù)。
VirtualCount 獲取或設(shè)置在使用自定義分頁(yè)時(shí)數(shù)據(jù)源中的實(shí)際項(xiàng)數(shù)。
這些屬性是否和DataGrid的屬性很相似?沒錯(cuò),DataGrid控件就是使用PagedDataSource類來實(shí)現(xiàn)數(shù)據(jù)分頁(yè)顯示的 。
下面舉個(gè)使用PagedDataSource類實(shí)現(xiàn)DataList和Repeater控件的分頁(yè)顯示的例子:
public void Page_Load(Object src,EventArgs e)
{
OleDbConnection objConn=new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\test.mdb");
OleDbDataAdapter objCommand=new OleDbDataAdapter("select * from Users",objConn);
DataSet ds=new DataSet();
objCommand.Fill(ds);
//對(duì)PagedDataSource 對(duì)象的相關(guān)屬性賦值
PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = ds.Tables[0].DefaultView;
objPds.AllowPaging = true;
objPds.PageSize = 5;
int CurPage;
//當(dāng)前頁(yè)面從Page查詢參數(shù)獲取
if (Request.QueryString["Page"] != null)
CurPage=Convert.ToInt32(Request.QueryString["Page"]);
else
CurPage=1;
objPds.CurrentPageIndex = CurPage-1;
lblCurrentPage.Text = "Page: " + CurPage.ToString();
if (!objPds.IsFirstPage)
lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath+"?Page="+ onvert.ToString(CurPage-1);
if (!objPds.IsLastPage)
lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+"?Page="+Convert.ToString(CurPage+1);
//把PagedDataSource 對(duì)象賦給Repeater控件
Repeater1.DataSource=objPds;
Repeater1.DataBind();
}
這樣可以簡(jiǎn)單實(shí)現(xiàn)Repeater分頁(yè)功能,但有個(gè)缺點(diǎn)就是每次把所有的數(shù)據(jù)查詢出來,如果數(shù)據(jù)量大的話,這樣效率就會(huì)比較低。此時(shí)用存儲(chǔ)過程實(shí)現(xiàn)較好!
實(shí)現(xiàn)DataList或Repeater控件的分頁(yè)顯示有幾種方法:
1、寫一個(gè)方法或存儲(chǔ)過程,根據(jù)傳入的頁(yè)數(shù)返回需要顯示的數(shù)據(jù)表(DataTable)
2、使用PagedDataSource類(位于System.Web.UI.WebControls命名空間里)
本篇文章主要說怎么使用PagedDataSource類實(shí)現(xiàn)DataList和Repeater控件的分頁(yè)顯示。DataGrid控件內(nèi)部也使用了PagedDataSource類,PagedDataSource 類封裝 DataGrid 控件的屬性,這些屬性使 DataGrid 可以執(zhí)行分頁(yè)。
PagedDataSource 類的部分公共屬性:
AllowCustomPaging 獲取或設(shè)置指示是否啟用自定義分頁(yè)的值。
AllowPaging 獲取或設(shè)置指示是否啟用分頁(yè)的值。
Count 獲取要從數(shù)據(jù)源使用的項(xiàng)數(shù)。
CurrentPageIndex 獲取或設(shè)置當(dāng)前頁(yè)的索引。
DataSource 獲取或設(shè)置數(shù)據(jù)源。
DataSourceCount 獲取數(shù)據(jù)源中的項(xiàng)數(shù)。
FirstIndexInPage 獲取頁(yè)中的第一個(gè)索引。
IsCustomPagingEnabled 獲取一個(gè)值,該值指示是否啟用自定義分頁(yè)。
IsFirstPage 獲取一個(gè)值,該值指示當(dāng)前頁(yè)是否是首頁(yè)。
IsLastPage 獲取一個(gè)值,該值指示當(dāng)前頁(yè)是否是最后一頁(yè)。
IsPagingEnabled 獲取一個(gè)值,該值指示是否啟用分頁(yè)。
IsReadOnly 獲取一個(gè)值,該值指示數(shù)據(jù)源是否是只讀的。
IsSynchronized 獲取一個(gè)值,該值指示是否同步對(duì)數(shù)據(jù)源的訪問(線程安全)。
PageCount 獲取顯示數(shù)據(jù)源中的所有項(xiàng)所需要的總頁(yè)數(shù)。
PageSize 獲取或設(shè)置要在單頁(yè)上顯示的項(xiàng)數(shù)。
VirtualCount 獲取或設(shè)置在使用自定義分頁(yè)時(shí)數(shù)據(jù)源中的實(shí)際項(xiàng)數(shù)。
這些屬性是否和DataGrid的屬性很相似?沒錯(cuò),DataGrid控件就是使用PagedDataSource類來實(shí)現(xiàn)數(shù)據(jù)分頁(yè)顯示的 。
下面舉個(gè)使用PagedDataSource類實(shí)現(xiàn)DataList和Repeater控件的分頁(yè)顯示的例子:
復(fù)制代碼 代碼如下:
public void Page_Load(Object src,EventArgs e)
{
OleDbConnection objConn=new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\test.mdb");
OleDbDataAdapter objCommand=new OleDbDataAdapter("select * from Users",objConn);
DataSet ds=new DataSet();
objCommand.Fill(ds);
//對(duì)PagedDataSource 對(duì)象的相關(guān)屬性賦值
PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = ds.Tables[0].DefaultView;
objPds.AllowPaging = true;
objPds.PageSize = 5;
int CurPage;
//當(dāng)前頁(yè)面從Page查詢參數(shù)獲取
if (Request.QueryString["Page"] != null)
CurPage=Convert.ToInt32(Request.QueryString["Page"]);
else
CurPage=1;
objPds.CurrentPageIndex = CurPage-1;
lblCurrentPage.Text = "Page: " + CurPage.ToString();
if (!objPds.IsFirstPage)
lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath+"?Page="+ onvert.ToString(CurPage-1);
if (!objPds.IsLastPage)
lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+"?Page="+Convert.ToString(CurPage+1);
//把PagedDataSource 對(duì)象賦給Repeater控件
Repeater1.DataSource=objPds;
Repeater1.DataBind();
}
這樣可以簡(jiǎn)單實(shí)現(xiàn)Repeater分頁(yè)功能,但有個(gè)缺點(diǎn)就是每次把所有的數(shù)據(jù)查詢出來,如果數(shù)據(jù)量大的話,這樣效率就會(huì)比較低。此時(shí)用存儲(chǔ)過程實(shí)現(xiàn)較好!
您可能感興趣的文章:
- 在ASP.NET 2.0中操作數(shù)據(jù)之四十一:DataList和Repeater數(shù)據(jù)分頁(yè)
- .NET實(shí)現(xiàn)Repeater控件+AspNetPager控件分頁(yè)
- asp.net中使用repeater和PageDataSource搭配實(shí)現(xiàn)分頁(yè)代碼
- asp.net中讓Repeater和GridView支持DataPager分頁(yè)
- asp.net下Repeater使用 AspNetPager分頁(yè)控件
- asp.net Repeater之非常好的數(shù)據(jù)分頁(yè)
- asp.net repeater手寫分頁(yè)實(shí)例代碼
- ASP.NET程序中用Repeater實(shí)現(xiàn)分頁(yè)
- .NET中的repeater簡(jiǎn)介及分頁(yè)效果
相關(guān)文章
asp.net gridview中用checkbox全選的幾種實(shí)現(xiàn)的區(qū)別
這幾天為了改變客戶端grid的全選效率問題,詳細(xì)研究了ext中g(shù)rid的全選和gridview中通過腳本實(shí)現(xiàn)的全選效率,總結(jié)一下,供大家參考,有錯(cuò)誤的地方,希望大俠指正,小弟獻(xiàn)丑了。2009-06-06asp.net String.IsNullOrEmpty 方法
2009-04-04asp.net Cookie跨域、虛擬目錄等設(shè)置方法
Cookie跨域、虛擬目錄等設(shè)置方法,需要的朋友可以參考下。2009-11-11ASP.NET中 script runat server 的用法
這篇文章主要介紹了ASP.NET中<script runat="server">的用法,以一個(gè)較為簡(jiǎn)單的例子分析了ASP.NET中<script runat="server">的特點(diǎn)及具體用法,對(duì)于asp.net初學(xué)者來說具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-11-11asp.net mvc webapi 實(shí)用的接口加密方法示例
本篇文章主要介紹了asp.net mvc webapi 實(shí)用的接口加密方法示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10ASP.NET Core使用GraphQL第一章之Hello World
這篇文章主要給大家介紹了關(guān)于ASP.NET Core使用GraphQL第一章之Hello World的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11使用pdfbox實(shí)現(xiàn)pdf文本提取和合并功能示例
這篇文章主要介紹了使用pdfbox實(shí)現(xiàn)pdf文本提取和合并功能示例,大家參考使用吧2014-01-01