PagedDataSource分页控件
//前台
<form id="form1" runat="server">
<div>
<asp:Panel ID="Panel1" runat="server" Height="440px" Width="798px">
<br />
Repearter 不能直接分页,给Repeater 改造分页显示<br />
<br />
<asp:Label ID="Label1" runat="server" Text="当前页码:"></asp:Label>
<asp:Label ID="Label2" runat="server"></asp:Label>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="上一页" />
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="下一页" /><br />
<br />
<asp:Repeater ID="Repeater1" runat="server">
<AlternatingItemTemplate>
<font color="blue">
<%# DataBinder.Eval(Container.DataItem,"personname") %>
<%# DataBinder.Eval(Container.DataItem,"personsex") %>
</font>
<br />
</AlternatingItemTemplate>
<FooterTemplate>
<h3>
页尾</h3>
</FooterTemplate>
<HeaderTemplate>
<h3>
页头</h3>
</HeaderTemplate>
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem,"personname") %>
<%# DataBinder.Eval(Container.DataItem,"personsex") %>
<br />
</ItemTemplate>
<SeparatorTemplate>
<hr color="blue" size="1" />
</SeparatorTemplate>
</asp:Repeater>
</asp:Panel>
</div>
</form>
//后台
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
//页面第一次载入时设置页面起始页为第一页.
this.Label2.Text = "1";
this.fengye();
}
public void fengye()
{
int curPage = Convert.ToInt32(this.Label2.Text);
SqlConnection con = DBtest.createCon();
SqlDataAdapter sdr = new SqlDataAdapter();
sdr.SelectCommand = new SqlCommand("select * from person", con);
DataSet ds = new DataSet();
sdr.Fill(ds, "emp"); //用数据适配器填充数据集.
PagedDataSource ps = new PagedDataSource();
ps.DataSource = ds.Tables["emp"].DefaultView; //视图作为数据源.
//下面设置分页属性
ps.AllowPaging = true;
ps.PageSize = 3;
ps.CurrentPageIndex = curPage - 1; //起始页从0开始.
//每次绑定设置按钮为可用状态,
//再判断是否是第一页或最后一页,若是,则设置相应的按钮为不可用
this.Button1.Enabled = true;
this.Button2.Enabled = true;
if(curPage==1)
{
this.Button1.Enabled = false;
}
if(curPage==ps.PageCount)
{
this.Button2.Enabled = false;
}
this.Repeater1.DataSource = ps;//这里不再使用ds;改用ps了
this.Repeater1.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
//注意不要丢了 this.fengye();
//
this.Label2.Text = Convert.ToString(Convert.ToInt32(this.Label2.Text)-1);
this.fengye();
}
protected void Button2_Click(object sender, EventArgs e)
{
this.Label2.Text = Convert.ToString(Convert.ToInt32(this.Label2.Text) + 1);
this.fengye();
}
}
浙公网安备 33010602011771号