由于Repeater控件没有与分页显示相关的属性,因此要实现分页必须使用其他的方式。在System.Web.UI.WebControls命名空
间中有一个PagedDataSource类,该类封装了DataGrid控件的分页属性,这些属性使DataGrid控件可以实现分页,此类也可以
用来实现Repeater控件的数据分页显示。PagedDataSource类的常用属性如下:
间中有一个PagedDataSource类,该类封装了DataGrid控件的分页属性,这些属性使DataGrid控件可以实现分页,此类也可以
用来实现Repeater控件的数据分页显示。PagedDataSource类的常用属性如下:
一、HTML代码
<TABLE id="TABLE1" border="0"><TBODY>
<TR>
<TD align="right">
<asp:label ID="lblCurPage" Runat="server"></asp:label>
<asp:HyperLink ID="InkPrev" Runat="server">上一页</asp:HyperLink>
<asp:HyperLink ID="InkNext" Runat="server">下一页</asp:HyperLink>
</TD>
</TR>
<TR>
<TD><HR color="red" size="1">
<asp:Repeater id="Repeater1" runat="server">
<HeaderTemplate><h3>页眉模板---人员详细信息</h3><table>
</HeaderTemplate>
<ItemTemplate><font color="blue">
<%# DataBinder.Eval(Container.DataItem, "id") %>
<%# DataBinder.Eval(Container.DataItem, "name") %>
<%# DataBinder.Eval(Container.DataItem, "station") %>
<%# DataBinder.Eval(Container.DataItem, "level") %>
<%# DataBinder.Eval(Container.DataItem, "dept") %></font>
</ItemTemplate>
<AlternatingItemTemplate><font color="red">
<%# DataBinder.Eval(Container.DataItem, "id") %>
<%# DataBinder.Eval(Container.DataItem, "name") %>
<%# DataBinder.Eval(Container.DataItem, "station") %>
<%# DataBinder.Eval(Container.DataItem, "level") %>
<%# DataBinder.Eval(Container.DataItem, "dept") %></font>
</AlternatingItemTemplate>
<SeparatorTemplate><hr color="#66ff99" width="100%">
</SeparatorTemplate>
<FooterTemplate></table><h3>页眉模板---显示结束</h3>
</FooterTemplate>
</asp:Repeater>
</TD>
</TR>
</TABLE>
二、页面加载事件代码
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
con=new SqlConnection(@ConfigurationSettings.AppSettings["server"]);
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
con=new SqlConnection(@ConfigurationSettings.AppSettings["server"]);
//页面初始化进行数据绑定
RepeaterDataBind();
}
}
三、RepeaterDataBind()方法
private void RepeaterDataBind()
{
con.Open();
string oSql="select id,name,station,level,dept from verify order by dept,station";
SqlDataAdapter da=new SqlDataAdapter(oSql,con);
DataSet ds=new DataSet();
da.Fill(ds,"verify");
con.Close();
//创建分页类
PagedDataSource objPage=new PagedDataSource();
//设置数据源 DefaultView:获取可能包含筛选视图或游标位置表的自定义视图
objPage.DataSource=ds.Tables["verify"].DefaultView;
//允许分页
objPage.AllowPaging=true;
//设置每页显示的项数
objPage.PageSize=5;
//定义变量用来保存当前页的索引值
int CurPage;
//判断是否具有页面跳转的请求
if(Request.QueryString["Page"]!=null)
{
CurPage=Convert.ToInt32(Request.QueryString["Page"]);
}
else
{
CurPage=1;
}
//设置当前页的索引
objPage.CurrentPageIndex=CurPage-1;
//显示状态信息
lblCurPage.Text="当前页:第"+CurPage.ToString()+"页";
//如果当前页面不是首页
if(!objPage.IsFirstPage)
{
//定义“上一页”超级链接的URL为:当前执行页面的虚拟路径,并传递下一页面的索引值
InkPrev.NavigateUrl=Request.CurrentExecutionFilePath+"?Page="+Convert.ToString(CurPage-1);
}
//如果当前页面不是最后一页
if(!objPage.IsLastPage)
{
//定义“下一页”超级链接的URL为:当前执行页面的虚拟路径,并传递下一页面的索引值
InkNext.NavigateUrl=Request.CurrentExecutionFilePath+"?Page="+Convert.ToString(CurPage+1);
}
//将PagedDataSource作为数据源
Repeater1.DataSource=objPage;
//进行数据绑定
Repeater1.DataBind();
}
RepeaterDataBind();
}
}
三、RepeaterDataBind()方法
private void RepeaterDataBind()
{
con.Open();
string oSql="select id,name,station,level,dept from verify order by dept,station";
SqlDataAdapter da=new SqlDataAdapter(oSql,con);
DataSet ds=new DataSet();
da.Fill(ds,"verify");
con.Close();
//创建分页类
PagedDataSource objPage=new PagedDataSource();
//设置数据源 DefaultView:获取可能包含筛选视图或游标位置表的自定义视图
objPage.DataSource=ds.Tables["verify"].DefaultView;
//允许分页
objPage.AllowPaging=true;
//设置每页显示的项数
objPage.PageSize=5;
//定义变量用来保存当前页的索引值
int CurPage;
//判断是否具有页面跳转的请求
if(Request.QueryString["Page"]!=null)
{
CurPage=Convert.ToInt32(Request.QueryString["Page"]);
}
else
{
CurPage=1;
}
//设置当前页的索引
objPage.CurrentPageIndex=CurPage-1;
//显示状态信息
lblCurPage.Text="当前页:第"+CurPage.ToString()+"页";
//如果当前页面不是首页
if(!objPage.IsFirstPage)
{
//定义“上一页”超级链接的URL为:当前执行页面的虚拟路径,并传递下一页面的索引值
InkPrev.NavigateUrl=Request.CurrentExecutionFilePath+"?Page="+Convert.ToString(CurPage-1);
}
//如果当前页面不是最后一页
if(!objPage.IsLastPage)
{
//定义“下一页”超级链接的URL为:当前执行页面的虚拟路径,并传递下一页面的索引值
InkNext.NavigateUrl=Request.CurrentExecutionFilePath+"?Page="+Convert.ToString(CurPage+1);
}
//将PagedDataSource作为数据源
Repeater1.DataSource=objPage;
//进行数据绑定
Repeater1.DataBind();
}
转载于:https://blog.51cto.com/chenxing/47482