最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

asp.net Repeater分頁實例(PageDataSource的使用)

 更新時間:2013年04月13日 18:35:00   作者:  
Asp.net提供了三個功能強大的列表控件:DataGrid、DataList和Repeater控件,但其中只有DataGrid控件提供分頁功能。相對DataGrid,DataList和Repeater控件具有更高的樣式自定義性,所以很多時候我們喜歡使用DataList或Repeater控件來顯示數(shù)據(jù)
Asp.net提供了三個功能強大的列表控件:DataGrid、DataList和Repeater控件,但其中只有DataGrid控件提供分頁功能。相對DataGrid,DataList和Repeater控件具有更高的樣式自定義性,所以很多時候我們喜歡使用DataList或Repeater控件來顯示數(shù)據(jù)。

實現(xiàn)DataList或Repeater控件的分頁顯示有幾種方法:
1、寫一個方法或存儲過程,根據(jù)傳入的頁數(shù)返回需要顯示的數(shù)據(jù)表(DataTable)
2、使用PagedDataSource類(位于System.Web.UI.WebControls命名空間里)

本篇文章主要說怎么使用PagedDataSource類實現(xiàn)DataList和Repeater控件的分頁顯示。DataGrid控件內(nèi)部也使用了PagedDataSource類,PagedDataSource 類封裝 DataGrid 控件的屬性,這些屬性使 DataGrid 可以執(zhí)行分頁。

PagedDataSource 類的部分公共屬性:
AllowCustomPaging 獲取或設置指示是否啟用自定義分頁的值。
AllowPaging 獲取或設置指示是否啟用分頁的值。
Count 獲取要從數(shù)據(jù)源使用的項數(shù)。
CurrentPageIndex 獲取或設置當前頁的索引。
DataSource 獲取或設置數(shù)據(jù)源。
DataSourceCount 獲取數(shù)據(jù)源中的項數(shù)。
FirstIndexInPage 獲取頁中的第一個索引。
IsCustomPagingEnabled 獲取一個值,該值指示是否啟用自定義分頁。
IsFirstPage 獲取一個值,該值指示當前頁是否是首頁。
IsLastPage 獲取一個值,該值指示當前頁是否是最后一頁。
IsPagingEnabled 獲取一個值,該值指示是否啟用分頁。
IsReadOnly 獲取一個值,該值指示數(shù)據(jù)源是否是只讀的。
IsSynchronized 獲取一個值,該值指示是否同步對數(shù)據(jù)源的訪問(線程安全)。
PageCount 獲取顯示數(shù)據(jù)源中的所有項所需要的總頁數(shù)。
PageSize 獲取或設置要在單頁上顯示的項數(shù)。
VirtualCount 獲取或設置在使用自定義分頁時數(shù)據(jù)源中的實際項數(shù)。

這些屬性是否和DataGrid的屬性很相似?沒錯,DataGrid控件就是使用PagedDataSource類來實現(xiàn)數(shù)據(jù)分頁顯示的 。

下面舉個使用PagedDataSource類實現(xiàn)DataList和Repeater控件的分頁顯示的例子:
復制代碼 代碼如下:

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);

//對PagedDataSource 對象的相關屬性賦值
PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = ds.Tables[0].DefaultView;
objPds.AllowPaging = true;
objPds.PageSize = 5;
int CurPage;

//當前頁面從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 對象賦給Repeater控件
Repeater1.DataSource=objPds;
Repeater1.DataBind();
}

這樣可以簡單實現(xiàn)Repeater分頁功能,但有個缺點就是每次把所有的數(shù)據(jù)查詢出來,如果數(shù)據(jù)量大的話,這樣效率就會比較低。此時用存儲過程實現(xiàn)較好!

相關文章

最新評論

宜君县| 铜山县| 出国| 盐城市| 汶上县| 祥云县| 山阳县| 常宁市| 江陵县| 麻城市| 苏州市| 永平县| 义马市| 泊头市| 广宁县| 大田县| 千阳县| 绥芬河市| 达尔| 衡阳市| 万全县| 虞城县| 呼图壁县| 景德镇市| 萝北县| 甘德县| 苏尼特左旗| 宝应县| 凤阳县| 蒙山县| 共和县| 读书| 泗水县| 湖北省| 河池市| 咸阳市| 乌兰县| 兴海县| 城口县| 黑水县| 彝良县|