repeater分页显示.docx
《repeater分页显示.docx》由会员分享,可在线阅读,更多相关《repeater分页显示.docx(7页珍藏版)》请在冰点文库上搜索。
repeater分页显示
Repeater分页
//ASP.NET中的DataList和Repeater提供了简单快速的方法來显示,其间,我们可以使用更是使我们能随心所欲的控制数据的排放样式!
//.可惜的是它们不像Datagrid那样,有内置的分页功能。
//
//如何解决呢?
//
//其实我们可以用【PagedDataSource】类来解决分页的问题。
//
//PagedDataSource类的属性:
//
//
//DataSource-数据源
//
//AllowPaging-true是否允许分页.
//PageSize-每页项目数量
//PageCount-总页数
//
//CurrentPageIndex-当前所在的页索引
//以Repeater为例代码如下:
==========================================================================
//Result.aspx.cs文件
usingSystem;
usingSystem.Collections;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Web;
usingSystem.Web.SessionState;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.HtmlControls;
namespacecomeday
{
///
///Result的摘要说明。
///
publicclassResult:
System.Web.UI.Page
{
protectedSystem.Web.UI.WebControls.HyperLinklnkPrev;
protectedSystem.Web.UI.WebControls.HyperLinklnkNext;
protectedSystem.Web.UI.WebControls.LabellblCurrentPage;
protectedSystem.Web.UI.WebControls.LabellblTotalPage;
protectedSystem.Web.UI.WebControls.RepeaterRepeater1;
privatevoidPage_Load(objectsender,System.EventArgse)
{
// 数据源
PagedDataSourcePgds=newPagedDataSource();
//
Pgds.DataSource=CreateDataSource().DefaultView;
// 设置允许分页
Pgds.AllowPaging=true;
// 每页显示为6行
Pgds.PageSize=6;
// 显示总共页数
//
lblTotalPage.Text=Pgds.PageCount.ToString();
// 当前页
intCurrentPage;
// 请求页码为不为null设置当前页,否则为第一页
if(Request.QueryString["Page"]!
=null)
{
CurrentPage=Convert.ToInt32(Request.QueryString["Page"]);
}
else
{
CurrentPage=1;
}
// 当前页所引为页码-1
Pgds.CurrentPageIndex=CurrentPage-1;
// 显示当前页码
lblCurrentPage.Text=CurrentPage.ToString();
// 如果不是第一页,通过参数Page设置上一页为当前页-1,否则不显示连接
if(!
Pgds.IsFirstPage)
{
// Request.CurrentExecutionFilePath为当前请求虚拟路径
lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath+"?
Page="+Convert.ToString(CurrentPage-1);
}
// EndIf
// 如果不是最后一页,通过参数Page设置下一页为当前页+1,否则不显示连接
if(!
Pgds.IsLastPage)
{
// Request.CurrentExecutionFilePath为当前请求虚拟路径
lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+"?
Page="+Convert.ToString(CurrentPage+1);
}
// 模板绑定数据源
Repeater1.DataSource=Pgds;
Repeater1.DataBind();
}
///
///生成数据源(一个Datatable)
///
///
publicDataTableCreateDataSource()
{
DataTabledt;
DataRowdr;
dt=newDataTable();
//添加列
dt.Columns.Add(newDataColumn("IntegerValue",System.Type.GetType("System.Int32")));
dt.Columns.Add(newDataColumn("StringValue",System.Type.GetType("System.String")));
dt.Columns.Add(newDataColumn("DateTimeValue",System.Type.GetType("System.DateTime")));
dt.Columns.Add(newDataColumn("BoolValue",System.Type.GetType("System.Boolean")));
//填充数据
for(inti=0;i<50;i++)
{
dr=dt.NewRow();
dr[0]=i;
dr[1]="Item"+i.ToString();
dr[2]=DateTime.Now.ToShortTimeString();
if(i%2!
=0)
{
dr[3]=true;
}
else
{
dr[3]=false;
}
dt.Rows.Add(dr);
}
returndt;
}
#regionWeb窗体设计器生成的代码
overrideprotectedvoidOnInit(EventArgse)
{
//
//CODEGEN:
该调用是ASP.NETWeb窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
///
///设计器支持所需的方法-不要使用代码编辑器修改
///此方法的内容。
///
privatevoidInitializeComponent()
{
this.Load+=newSystem.EventHandler(this.Page_Load);
}
#endregion
}
}
===========================================================================
Result.aspx文件
//<%@PageLanguage="c#"Codebehind="Result.aspx.cs"AutoEventWireup="false"Inherits="comeday.Result"%>
//<%@importNamespace="System.Data"%>
//
//
//
DataRepeater//
//
//BODY
//{
// FONT:
10pxVerdana,Arial,Helvetica,"sansserif";COLOR:
#000000}
//
//.txt{FONT-SIZE:
12px}
//
//
//
//
//
//
//
//
//
// hyperlinkid="lnkPrev"runat="server">上页 hyperlink> // hyperlinkid="lnkNext"runat="server">下页 hyperlink>第 // labelid="lblCurrentPage"runat="server"> label> // 页共 // labelid="lblTotalPage"runat="server"> label>页 // | //
//
//
// repeaterid="Repeater1"runat="server">
//
//
//
//
//
// OrderDate: // <%#DataBinder.Eval(Container.DataItem,"DateTimeValue","{0: d}")%> // | //
//
// Quantity: // <%#DataBinder.Eval(Container.DataItem,"IntegerValue","{0: N2}")%> // | //
//
// Item: // <%#DataBinder.Eval(Container.DataItem,"StringValue")%> // | //
//
// OrderDate: // checkboxid=chk1checked='<%#DataBinder.Eval(Container.DataItem,"BoolValue")%>'runat="server"/> // | //
//
//
//
repeater>
//
//
//
//
DataList同理。