asp.net Repeater分頁(yè)實(shí)例(PageDataSource的使用)_.Net教程
推薦:ASP.NET MVC中解析淘寶網(wǎng)頁(yè)出現(xiàn)亂碼問題的解決方法最近在使用MVC解析淘寶網(wǎng)頁(yè)出現(xiàn)亂碼問題,原因就是中文字符格式出現(xiàn)沖突,ASP.NET MVC 默認(rèn)采用utf-8,但是淘寶網(wǎng)頁(yè)采用gbk。在網(wǎng)上找了一下,最常用的解決方法,特分享下
Asp.net提供了三個(gè)功能強(qiáng)大的列表控件:DataGrid、DataList和Repeater控件,但其中只有DataGrid控件提供分頁(yè)功能。相對(duì)DataGrid,DataList和Repeater控件具有更高的樣式自定義性,所以很多時(shí)候我們喜歡使用DataList或Repeater控件來(lái)顯示數(shù)據(jù)。實(shí)現(xiàn)DataList或Repeater控件的分頁(yè)顯示有幾種方法:
1、寫一個(gè)方法或存儲(chǔ)過(guò)程,根據(jù)傳入的頁(yè)數(shù)返回需要顯示的數(shù)據(jù)表(DataTable)
2、使用PagedDataSource類(位于System.Web.UI.WebControls命名空間里)
本篇文章主要說(shuō)怎么使用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類來(lái)實(shí)現(xiàn)數(shù)據(jù)分頁(yè)顯示的 。
下面舉個(gè)使用PagedDataSource類實(shí)現(xiàn)DataList和Repeater控件的分頁(yè)顯示的例子:
復(fù)制代碼 代碼如下:www.ghpqjb.com
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ù)查詢出來(lái),如果數(shù)據(jù)量大的話,這樣效率就會(huì)比較低。此時(shí)用存儲(chǔ)過(guò)程實(shí)現(xiàn)較好!
分享:.net中 關(guān)于反射的詳細(xì)介紹本篇文章小編將為大家介紹,.net中 關(guān)于反射的詳細(xì)介紹 ,有需要的朋友可以參考一下
相關(guān).Net教程:
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無(wú)刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(kù)(連接字符串的配置及獲取)
- asp.net頁(yè)面?zhèn)髦禍y(cè)試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過(guò)程實(shí)現(xiàn)分頁(yè)示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- GridView列顯示時(shí)間貨幣格式字符串
- ASP.NET利用MD.DLL轉(zhuǎn)EXCEL具體實(shí)現(xiàn)
- 淺析.Net平臺(tái)下開發(fā)中文語(yǔ)音應(yīng)用程序
- .Net教程之基于ASP.NET2.0的非HttpModule山寨版MVC框架的實(shí)現(xiàn)
- c#自定義控件中事件的處理
- 淺析ASP.NET MVC :MVC頁(yè)面驗(yàn)證與授權(quán)
- 談ASP.NET 2.0中XML數(shù)據(jù)的處理
- 用Xaml做網(wǎng)頁(yè)框架
- 解析.Net框架下的XML編程技術(shù)
- ASP.NET筆記之頁(yè)面跳轉(zhuǎn)、調(diào)試、form表單、viewstate、cookie的使用說(shuō)明
- 相關(guān)鏈接:
復(fù)制本頁(yè)鏈接| 搜索asp.net Repeater分頁(yè)實(shí)例(PageDataSource的使用)
- 教程說(shuō)明:
.Net教程-asp.net Repeater分頁(yè)實(shí)例(PageDataSource的使用)
。