Datalist控件,Repeater控件如何分页?
生活随笔
收集整理的這篇文章主要介紹了
Datalist控件,Repeater控件如何分页?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Asp.net提供了三個功能強大的列表控件:DataGrid、DataList和Repeater控件,但其中只有DataGrid控件提供分頁功能。相對DataGrid,DataList和Repeater控件具有更高的樣式自定義性,所以很多時候我們喜歡使用DataList或Repeater控件來顯示數據。?
實現DataList或Repeater控件的分頁顯示有幾種方法:?
1、寫一個方法或存儲過程,根據傳入的頁數返回需要顯示的數據表(DataTable)?
2、使用PagedDataSource類(位于System.Web.UI.WebControls命名空間里)?
本篇文章主要說怎么使用PagedDataSource類實現DataList和Repeater控件的分頁顯示。DataGrid控件內部也使用了PagedDataSource類,PagedDataSource?類封裝?DataGrid?控件的屬性,這些屬性使?DataGrid?可以執行分頁。?
PagedDataSource?類的部分公共屬性:?
AllowCustomPaging?獲取或設置指示是否啟用自定義分頁的值。?
AllowPaging?獲取或設置指示是否啟用分頁的值。?
Count?獲取要從數據源使用的項數。?
CurrentPageIndex?獲取或設置當前頁的索引。?
DataSource?獲取或設置數據源。?
DataSourceCount?獲取數據源中的項數。?
FirstIndexInPage?獲取頁中的第一個索引。?
IsCustomPagingEnabled?獲取一個值,該值指示是否啟用自定義分頁。?
IsFirstPage?獲取一個值,該值指示當前頁是否是首頁。?
IsLastPage?獲取一個值,該值指示當前頁是否是最后一頁。?
IsPagingEnabled?獲取一個值,該值指示是否啟用分頁。?
IsReadOnly?獲取一個值,該值指示數據源是否是只讀的。?
IsSynchronized?獲取一個值,該值指示是否同步對數據源的訪問(線程安全)。?
PageCount?獲取顯示數據源中的所有項所需要的總頁數。?
PageSize?獲取或設置要在單頁上顯示的項數。?
VirtualCount?獲取或設置在使用自定義分頁時數據源中的實際項數。?
這些屬性是否和DataGrid的屬性很相似?沒錯,DataGrid控件就是使用PagedDataSource類來實現數據分頁顯示的?。下面舉個使用PagedDataSource類實現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查詢參數獲取?
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?對象賦給Repeater控件?
Repeater1.DataSource=objPds;?
Repeater1.DataBind();?
}
?
實現DataList或Repeater控件的分頁顯示有幾種方法:?
1、寫一個方法或存儲過程,根據傳入的頁數返回需要顯示的數據表(DataTable)?
2、使用PagedDataSource類(位于System.Web.UI.WebControls命名空間里)?
本篇文章主要說怎么使用PagedDataSource類實現DataList和Repeater控件的分頁顯示。DataGrid控件內部也使用了PagedDataSource類,PagedDataSource?類封裝?DataGrid?控件的屬性,這些屬性使?DataGrid?可以執行分頁。?
PagedDataSource?類的部分公共屬性:?
AllowCustomPaging?獲取或設置指示是否啟用自定義分頁的值。?
AllowPaging?獲取或設置指示是否啟用分頁的值。?
Count?獲取要從數據源使用的項數。?
CurrentPageIndex?獲取或設置當前頁的索引。?
DataSource?獲取或設置數據源。?
DataSourceCount?獲取數據源中的項數。?
FirstIndexInPage?獲取頁中的第一個索引。?
IsCustomPagingEnabled?獲取一個值,該值指示是否啟用自定義分頁。?
IsFirstPage?獲取一個值,該值指示當前頁是否是首頁。?
IsLastPage?獲取一個值,該值指示當前頁是否是最后一頁。?
IsPagingEnabled?獲取一個值,該值指示是否啟用分頁。?
IsReadOnly?獲取一個值,該值指示數據源是否是只讀的。?
IsSynchronized?獲取一個值,該值指示是否同步對數據源的訪問(線程安全)。?
PageCount?獲取顯示數據源中的所有項所需要的總頁數。?
PageSize?獲取或設置要在單頁上顯示的項數。?
VirtualCount?獲取或設置在使用自定義分頁時數據源中的實際項數。?
這些屬性是否和DataGrid的屬性很相似?沒錯,DataGrid控件就是使用PagedDataSource類來實現數據分頁顯示的?。下面舉個使用PagedDataSource類實現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查詢參數獲取?
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?對象賦給Repeater控件?
Repeater1.DataSource=objPds;?
Repeater1.DataBind();?
}
?
總結
以上是生活随笔為你收集整理的Datalist控件,Repeater控件如何分页?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求一个不打扰的个性签名。
- 下一篇: asp.net 对xml文件的读写,添加