GridView Datalist 分页

来源:互联网 发布:肖恩坎普数据 编辑:程序博客网 时间:2024/05/11 22:15

 **.cs

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            InitData();
        }
    }
    protected void InitData()
    {
        Post post = new Post();
        DataSet ds = post.BBSPost ();
        int curpage = Convert.ToInt32(this.labPage.Text);
        PagedDataSource ps = new PagedDataSource();
        ps.DataSource = ds.Tables[0].DefaultView;
        //启用分页
        ps.AllowPaging = true;
        //每页显示30条数据
        ps.PageSize = 30;
        //设置当前页的索引
        ps.CurrentPageIndex = curpage - 1;
        this.lnkbtnFront.Enabled = true;
        this.lnkbtnNext.Enabled = true;
        this.lnkbtnLast.Enabled = true;
        this.lnkbtnFirst.Enabled = true;
        if (curpage == 1) //等于第一页
        {
            this.lnkbtnFirst.Enabled = false;//不显示第一页按钮
            this.lnkbtnFront.Enabled = false;//不显示上一页按钮
        }
        if (curpage == ps.PageCount) //等于最后一页
        {
            this.lnkbtnNext.Enabled = false;//不显示下一页
            this.lnkbtnLast.Enabled = false;//不显示最后一页
        }
        this.labBackPage.Text = Convert.ToString(ps.PageCount);
        this.GridView1.DataSource = ps;
        //设置数据源的关键字段
        GridView1.DataSource = ps;//改为 datalist 控件id
   GridView1.DataBind();
    }

 protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;
        InitData();
    }

    protected void lnkbtnFirst_Click1(object sender, EventArgs e)
    {
        labPage.Text = "1";//设置当前页为1
        this.InitData();//调用自定义方法重新绑定数据
    }
    protected void lnkbtnFront_Click1(object sender, EventArgs e)
    {
        //设置当前页减1
        labPage.Text = Convert.ToString(Convert.ToInt32(labPage.Text) - 1);
        this.InitData();//调用自定义方法重新绑定数据
    }
    protected void lnkbtnNext_Click1(object sender, EventArgs e)
    {
        //设置当前页加1
        labPage.Text = Convert.ToString(Convert.ToInt32(labPage.Text) + 1);
        this.InitData();//调用自定义方法重新绑定数据
    }
    protected void lnkbtnLast_Click1(object sender, EventArgs e)
    {
        //设置当前页为最后一页
        labPage.Text = labBackPage.Text;
        this.InitData();//调用自定义方法重新绑定数据
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Redirect("~/OnlineExchanges/Post.aspx");
    }

 

**.aspx

 

td style="vertical-align: middle;  height:20px; width:1000px; text-align: center">
                    <asp:Label ID="Label1" runat="server" Text="当前页码:"></asp:Label>
                    <asp:Label ID="labPage" runat="server" Text="1"></asp:Label>
                    <asp:Label ID="Label3" runat="server" Text="总页码:"></asp:Label>
                    <asp:Label ID="labBackPage" runat="server" Text="1"></asp:Label>
                    &nbsp;&nbsp;
                    <asp:LinkButton ID="lnkbtnFirst" runat="server" OnClick="lnkbtnFirst_Click1">首页</asp:LinkButton>
                    &nbsp; &nbsp;<asp:LinkButton ID="lnkbtnFront" runat="server" OnClick="lnkbtnFront_Click1">上一页</asp:LinkButton>
                    &nbsp;&nbsp;
                    <asp:LinkButton ID="lnkbtnNext" runat="server" OnClick="lnkbtnNext_Click1">下一页</asp:LinkButton>
                    &nbsp;&nbsp;
                    <asp:LinkButton ID="lnkbtnLast" runat="server" OnClick="lnkbtnLast_Click1">尾页</asp:LinkButton>
                    &nbsp; &nbsp;
                    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="发帖" /></td>