webform分页

前端界面:

当前第【<asp:Label ID="Label_nowpage" runat="server" Text="Label"></asp:Label>】页&nbsp&nbsp
        共【<asp:Label ID="Label_maxpage" runat="server" Text="Label"></asp:Label>】页&nbsp&nbsp
            <asp:LinkButton ID="btn_first" runat="server">首页</asp:LinkButton>&nbsp&nbsp
            <asp:LinkButton ID="btn_prev" runat="server">上一页</asp:LinkButton>&nbsp&nbsp
            <asp:LinkButton ID="btn_next" runat="server">下一页</asp:LinkButton>&nbsp&nbsp
            <asp:LinkButton ID="btn_last" runat="server">末页</asp:LinkButton>&nbsp&nbsp
            <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true"></asp:DropDownList>
            <asp:Button ID="Button1" runat="server" Text="跳转" />

实体类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// goods 的摘要说明
/// </summary>
public class goods
{
    public goods()
    {
        //
        // TODO: 在此处添加构造函数逻辑
        //
    }
    public int ids { get; set; }
    public string goodsname { get; set; }
    public string number { get; set; }
    public string sprice { get; set; }
    public DateTime intime { get; set; }
    public string gtel { get; set; }
    public string goodsbase { get; set; }


}

数据访问类:

选择五条:

 public List<goods> select(int count,int nowpage)
    {
        List<goods> glist = new List<goods>();
        cmd.CommandText = "select top "+count+"*from goods where ids not in(select top "+((nowpage-1)*count)+" ids from goods)";
        conn.Open();
        SqlDataReader dr = cmd.ExecuteReader();
        if (dr.HasRows)
        {
            while (dr.Read())
            {
                goods g = new goods();
                g.ids = Convert.ToInt32(dr[0]);
                g.goodsname = dr[1].ToString();
                g.number = dr[2].ToString();
                g.sprice = dr[3].ToString();
                g.intime = Convert.ToDateTime(dr[4]);
                g.gtel = dr[5].ToString();
                g.goodsbase = dr[6].ToString();


                glist.Add(g);
            }
        }
        conn.Close();
        return glist;
    }

选择全部:

public List<goods> select()
    {
        List<goods> glist = new List<goods>();
        cmd.CommandText = "select*from goods";
        conn.Open();
        SqlDataReader dr = cmd.ExecuteReader();
        if (dr.HasRows)
        {
            while (dr.Read())
            {
                goods g = new goods();
                g.ids = Convert.ToInt32(dr[0]);
                g.goodsname = dr[1].ToString();
                g.number = dr[2].ToString();
                g.sprice = dr[3].ToString();
                g.intime = Convert.ToDateTime(dr[4]);
                g.gtel = dr[5].ToString();
                g.goodsbase = dr[6].ToString();


                glist.Add(g);
            }        
        }
        conn.Close();
        return glist;
    }

后台代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Default2 : System.Web.UI.Page
{
    int count = 5;//每页显示条数
    protected void Page_Load(object sender, EventArgs e)
    {
        //string ni = Session["a"].ToString();
        //Label1.Text = ni + ",欢迎回来!";
        if (!IsPostBack)
        {
            Label_nowpage.Text = "1";
            Label_maxpage.Text = maxpagenum().ToString();
            Repeater1.DataSource = new goodsdata().select(count, 1);
            Repeater1.DataBind();
            btn_prev.Enabled = false;

            int max = maxpagenum();
            for (int i = 1; i <= max; i++)
            {
                DropDownList1.Items.Add(i.ToString());
            }



        }

        DropDownList1.SelectedIndexChanged += Button1_Click;
        btn_first.Click += btn_first_Click;//首页
        btn_prev.Click += btn_prev_Click;//上一页
        btn_next.Click += btn_next_Click;//下一页
        btn_last.Click += btn_last_Click;//末页
        Button1.Click += Button1_Click;
    }

    void Button1_Click(object sender, EventArgs e)
    {
        //获取当前页,计算要看的下一页的页号
        int pagenext = Convert.ToInt32(DropDownList1.SelectedValue);

        //按照获取的页数绑定相应的数据
        Repeater1.DataSource = new goodsdata().select(count, pagenext);
        Repeater1.DataBind();
        //修改显示页数
        Label_nowpage.Text = pagenext.ToString();
        //判断是否禁用
        if (pagenext == 1)
        {
            btn_prev.Enabled = false;
            btn_next.Enabled = true;
        }
        if (pagenext == maxpagenum())
        {
            btn_prev.Enabled = true;
            btn_next.Enabled = false;
        }



    }
    void btn_first_Click(object sender, EventArgs e)//跳转第一页
    {
        //按照获取的页数绑定相应的数据
        Repeater1.DataSource = new goodsdata().select(count, 1);
        Repeater1.DataBind();
        //修改显示页数
        Label_nowpage.Text = "1";

        btn_prev.Enabled = false;
        btn_next.Enabled = true;
    }

    void btn_prev_Click(object sender, EventArgs e)//跳转上一页
    {
        //获取当前页,计算要看的下一页的页号
        int pagenext = Convert.ToInt32(Label_nowpage.Text) - 1;

        //按照获取的页数绑定相应的数据
        Repeater1.DataSource = new goodsdata().select(count, pagenext);
        Repeater1.DataBind();
        //修改显示页数
        Label_nowpage.Text = pagenext.ToString();
        //判断是否有下一页
        if (pagenext<=1)
        {
            btn_prev.Enabled = false;
        }
        //恢复下一页按钮的可用性
        btn_next.Enabled = true;
    }

    void btn_next_Click(object sender, EventArgs e)//跳转下一页
    {
        //获取当前页,计算要看的下一页的页号
        int pagenext = Convert.ToInt32(Label_nowpage.Text) + 1;
       
        //按照获取的页数绑定相应的数据
        Repeater1.DataSource = new goodsdata().select(count,pagenext);
        Repeater1.DataBind();
        //修改显示页数
        Label_nowpage.Text = pagenext.ToString();
        //判断是否有下一页
        if (pagenext >= maxpagenum())
        {
            btn_next.Enabled = false;
        }
        btn_prev.Enabled = true;
    }

    void btn_last_Click(object sender, EventArgs e)//跳转尾页
    {
        //按照获取的页数绑定相应的数据
        Repeater1.DataSource = new goodsdata().select(count, maxpagenum());
        Repeater1.DataBind();
        //修改显示页数
        Label_nowpage.Text = maxpagenum().ToString();

        btn_prev.Enabled = true;
        btn_next.Enabled = false;
    }

    public int maxpagenum()//计算最大页数的方法
    {
        List<goods> glist = new goodsdata().select();

        int end = Convert.ToInt32(Math.Ceiling(glist.Count / (count * 1.0)));
        return end;
    }
}

 

posted @ 2017-01-04 16:56  游称  阅读(191)  评论(0编辑  收藏  举报