佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > asp.net Repeater分頁(yè)實(shí)例(PageDataSource的使用)

asp.net Repeater分頁(yè)實(shí)例(PageDataSource的使用)

熱門(mén)標(biāo)簽:阿里云 電子圍欄 團(tuán)購(gòu)網(wǎng)站 Mysql連接數(shù)設(shè)置 科大訊飛語(yǔ)音識(shí)別系統(tǒng) Linux服務(wù)器 服務(wù)器配置 銀行業(yè)務(wù)
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、寫(xiě)一個(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ù)源的訪問(wèn)(線程安全)。
PageCount 獲取顯示數(shù)據(jù)源中的所有項(xiàng)所需要的總頁(yè)數(shù)。
PageSize 獲取或設(shè)置要在單頁(yè)上顯示的項(xiàng)數(shù)。
VirtualCount 獲取或設(shè)置在使用自定義分頁(yè)時(shí)數(shù)據(jù)源中的實(shí)際項(xiàng)數(shù)。

這些屬性是否和DataGrid的屬性很相似?沒(méi)錯(cuò),DataGrid控件就是使用PagedDataSource類來(lái)實(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ù)查詢出來(lái),如果數(shù)據(jù)量大的話,這樣效率就會(huì)比較低。此時(shí)用存儲(chǔ)過(guò)程實(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手寫(xiě)分頁(yè)實(shí)例代碼
  • ASP.NET程序中用Repeater實(shí)現(xiàn)分頁(yè)
  • .NET中的repeater簡(jiǎn)介及分頁(yè)效果

標(biāo)簽:蚌埠 大理 衢州 江蘇 衡水 棗莊 廣元 萍鄉(xiāng)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《asp.net Repeater分頁(yè)實(shí)例(PageDataSource的使用)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    庆云县| 晋城| 昌宁县| 左贡县| 临江市| 滁州市| 阿荣旗| 慈利县| 池州市| 饶阳县| 金堂县| 磐石市| 溧水县| 建始县| 新化县| 梨树县| 绍兴市| 临高县| 水城县| 广州市| 皮山县| 鲁山县| 普宁市| 太白县| 榆林市| 马公市| 宕昌县| 恩平市| 鄂尔多斯市| 洮南市| 桓仁| 土默特左旗| 宾川县| 佛冈县| 察哈| 肇州县| 白朗县| 江都市| 雅安市| 开江县| 揭东县|