国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

使用PagedDataSource類實(shí)現(xiàn)DataList和Repeater控件的分頁(yè)顯示

2019-11-18 16:55:28
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(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類

     本篇文章主要說(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è)顯示的例子:

 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=" + Convert.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)DataList和Repeater控件的分頁(yè)顯示。但這樣做有個(gè)缺點(diǎn),就是每次都要把所有頁(yè)的數(shù)據(jù)Select出來(lái),DataGrid也是這樣,這樣會(huì)降低一點(diǎn)效率(大多時(shí)候體會(huì)不出來(lái)差別);如果使用第一種方法就可以只Select出當(dāng)前頁(yè)的數(shù)據(jù)(實(shí)現(xiàn)方法請(qǐng)查看有關(guān)文章)


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 五华县| 通河县| 图木舒克市| 湟中县| 三原县| 拜泉县| 镇江市| 甘肃省| 津南区| 宽城| 花莲县| 嘉善县| 清丰县| 平顺县| 大石桥市| 勃利县| 孟村| 岑溪市| 林州市| 江山市| 西藏| 鄂州市| 友谊县| 临朐县| 怀远县| 竹北市| 酉阳| 招远市| 花垣县| 陇川县| 台北市| 屏东县| 阳西县| 镇远县| 西林县| 龙川县| 六盘水市| 浦江县| 永修县| 华容县| 五指山市|