本次分页适合所有ASP.net数据绑定控件: 如:GridView DataList 等等
下面例子以DataList 为例
说明:
IList<Hotel_info> 泛型集合
ViewState["hotelList2"] 当前页的数据
this.DataListHotelList 当前页的DataList 控件
Databind() 这个方法在页面首次加载时调用
Databind(IList<Hotel_info> hf) 这个方法一般情况下 根据需求不同进行相关的数据绑定
1.前台 .aspx
<td style="width:300px">
<asp:Label runat="server" ID="lblCurrentPage"></asp:Label>
<asp:Button ID="btnPrev" runat="server" Text="上一页" BackColor="#C0FFC0" BorderColor="SeaGreen"
BorderStyle="Solid" BorderWidth="1px" CssClass="anniu" Font-Size="12px" ForeColor="Black"
Font-Bold="False" Height="16px" Width="57px" OnClick="btnPrev_Click" />
<asp:Button ID="btnNext" runat="server" Text="下一页" BackColor="#C0FFC0" BorderColor="SeaGreen"
BorderStyle="Solid" BorderWidth="1px" CssClass="anniu" Font-Size="12px" ForeColor="Black"
Font-Bold="False" Height="16px" Width="57px" OnClick="btnNext_Click" />
</td>
2.后台 .cs
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//首次加载,赋初值
ViewState["Page"] = 0;
Databind()//绑定所有信息列表
}
this.lalShowText.Text = "";//清空提示信息
}
//进行分页数据绑定
private void Databind()
{
try
{
PagedDataSource pdslvyou = new PagedDataSource();
//对PagedDataSource 对象的相关属性赋值
IList<Hotel_info> hfList = ViewState["hotelList2"] as IList<Hotel_info>;
pdslvyou.DataSource = hfList;
pdslvyou.AllowPaging = true;
pdslvyou.PageSize = 8;
pdslvyou.CurrentPageIndex = Pager;
lblCurrentPage.Text = "第 " + (pdslvyou.CurrentPageIndex + 1).ToString() + " 页 共 " + pdslvyou.PageCount.ToString() + " 页";
SetEnable(pdslvyou);
//把PagedDataSource 对象赋给DataList控件
this.DataListHotelList.DataSource = pdslvyou;
this.DataListHotelList.DataBind();
}
catch (Exception)
{ }
}
//传入一个集合 进行分页数据绑定
private void Databind(IList<Hotel_info> hf)
{
try
{
PagedDataSource pdslvyou = new PagedDataSource();
//对PagedDataSource 对象的相关属性赋值
IList<Hotel_info> hfList = hf;
pdslvyou.DataSource = hfList;
pdslvyou.AllowPaging = true;
pdslvyou.PageSize = 8;
pdslvyou.CurrentPageIndex = Pager;
lblCurrentPage.Text = "第 " + (pdslvyou.CurrentPageIndex + 1).ToString() + " 页 共 " + pdslvyou.PageCount.ToString() + " 页";
SetEnable(pdslvyou);
//把PagedDataSource 对象赋给DataList控件
this.DataListHotelList.DataSource = pdslvyou;
this.DataListHotelList.DataBind();
ViewState.Add("hotelList2", hfList);
}
catch (Exception)
{ }
}
//翻页
private void SetEnable(PagedDataSource pds)
{
btnPrev.Enabled = true;
btnNext.Enabled = true;
if (pds.IsFirstPage)
btnPrev.Enabled = false;
if (pds.IsLastPage)
btnNext.Enabled = false;
}
//上一页
protected void btnPrev_Click(object sender, EventArgs e)
{
Pager--;
Databind();
}
//下一页
protected void btnNext_Click(object sender, EventArgs e)
{
Pager++;
Databind();
}
/// <summary>
/// 当前页数
/// </summary>
private int Pager
{
get
{
return (int)ViewState["Page"];
}
set
{
ViewState["Page"] = value;
}
}