ASP.NET 分页实现源码(上一页 下一页共页数 第几页)

 本次分页适合所有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;
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值