html 代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="repeaterControl.aspx.cs" Inherits="repeaterControl" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Panel ID="Panel1" runat="server" Height="136px" Width="232px">
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem,"LastName") %>
<%# DataBinder.Eval(Container.DataItem,"FirstName") %>
</ItemTemplate>
<AlternatingItemTemplate>
<font color="blue">
<%# DataBinder.Eval(Container.DataItem,"PhotoPath") %>
</font>
</AlternatingItemTemplate>
<FooterTemplate>
<h3>页角</h3>
</FooterTemplate>
<HeaderTemplate>
<h3>页头</h3>
</HeaderTemplate>
<SeparatorTemplate><hr color="red" size="1"></SeparatorTemplate>
</asp:Repeater>
</asp:Panel>
<br />
<asp:Label ID="Label1" runat="server" Text="当前页:" Width="64px"></asp:Label>
<asp:Label ID="Label2" runat="server" Text="Label" Width="40px"></asp:Label>
<asp:Button ID="btnPro" runat="server" OnClick="btnPro_Click" Text="上一页" />
<asp:Button ID="btnNext" runat="server" OnClick="btnNext_Click" Text="下一页" />
<asp:Label ID="Label3" runat="server" Text="总页数:"></asp:Label>
<asp:Label ID="Label4" runat="server" Text="Label" Width="40px"></asp:Label><br />
</div>
</form>
</body>
</html>
--------------------------------------------------------------------------------------------------------------------------------
repeaterControl.aspx.cs 代码
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class repeaterControl : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
//这里是先定义第一页
this.Label2.Text = "1";
//在实现方法中的绑定
dataBingToRepeate();
}
}
private void dataBingToRepeate()
{
//先获取是第几页
int curPage = Convert.ToInt32(this.Label2.Text);
//实例化类(连接数据库的方法,这里没有定义为静态的)
DB con = new DB();
SqlConnection conn = con.createConn();
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = new SqlCommand("select * from Employees", conn);
DataSet ds = new DataSet();
sda.Fill(ds, "emp");
//这个类是GridView中的分页类在这个命名空间下
// System.Web.UI.WebControls.PagedDataSource--记住
System.Web.UI.WebControls.PagedDataSource ps = new PagedDataSource();
//这个类要实现一个数据表的视图(课上说是一个接口)
ps.DataSource = ds.Tables["emp"].DefaultView;
//设置这个类允许分页
ps.AllowPaging = true;
//设置三条记录一页
ps.PageSize = 3;
this.Label4.Text = ps.PageCount.ToString();
//当前页的索引应该是从"0"开始.
//所有设置为curPage-1以后显示的
//时候就按索引来显示,比如:第二页
//的索引就是1.
ps.CurrentPageIndex = curPage-1;
//先让上一页和下一页的两个
//按钮为可用
this.btnPro.Enabled = true;
this.btnNext.Enabled = true;
if (curPage == 1)
{
//当是第一页的时候上一页为不可用
this.btnPro.Enabled= false;
}
if (curPage == ps.PageCount)
{
//当是最后一页的时候下一页为不可用
this.btnNext.Enabled = false;
}
//Repeater控件绑定获得视图的类
this.Repeater1.DataSource = ps;
this.Repeater1.DataBind();
}
protected void btnPro_Click(object sender, EventArgs e)
{
//记得WEB程序在每次提交的时候都要重新绑定一次
this.Label2.Text=Convert.ToString(Convert.ToInt32(this.Label2.Text)-1);
this.dataBingToRepeate();
}
protected void btnNext_Click(object sender, EventArgs e)
{
this.Label2.Text = Convert.ToString(Convert.ToInt32(this.Label2.Text) + 1);
this.dataBingToRepeate();
}
}
浙公网安备 33010602011771号