gridview上面有一个view all的link。现在客户希望点击view all的时候,所有的数据显示,但是分页的button还在。在view all的状态下点击分页的1,2,3。依然还能实现分页效果不知道如何实现,请大牛帮忙

解决方案 »

  1.   

    不用GridView的分页,单独自己写分页
      

  2.   

    刚开始学习.net的时候我也是用它自己带的分页,但是后来看到有个aspnetpager,就用了这个了,效果非常棒.
    不过asp.net的分页的原理还是有必要弄明白的.
      

  3.   

    gridview分页方法很多
    存储过程分页
    自定义分页
    aspnetpager等控件分页
    通过viewstate标识判断,绑定数据方法不同。默认为分页方法。
      

  4.   

    把这个 方法的  ps.PageSize = 2; //显示的数量
    放到你的 命令按钮里。总是这个东西 是完全可以自定义的 , 你自己看着改吧。比较好用,不懂问我
    -----------------------------------------------
        DataCon myCon = new DataCon();
        DataOperate sqlBind = new DataOperate();
        SqlConnection sqlconn;
        protected void Page_Load(object sender, EventArgs e)
        {
            dlBind();
        }
        public void dlBind()
        {
            int curpage = Convert.ToInt32(this.labPage.Text);
            PagedDataSource ps = new PagedDataSource();
            sqlconn = myCon.getCon();
            sqlconn.Open();
            string sqlstr = "select a.*,b.* from tb_Card as a join tb_Module as b on a.ModuleID=b.ModuleID";
            SqlDataAdapter MyAdapter = new SqlDataAdapter(sqlstr, sqlconn);
            DataSet ds = new DataSet();
            MyAdapter.Fill(ds, "tb_Card");
            ps.DataSource = ds.Tables["tb_Card"].DefaultView;
            ps.AllowPaging = true; //是否可以分页
            ps.PageSize = 2; //显示的数量
            ps.CurrentPageIndex = curpage - 1; //取得当前页的页码
            this.lnkbtnUp.Enabled = true;
            this.lnkbtnNext.Enabled = true;
            this.lnkbtnBack.Enabled = true;
            this.lnkbtnOne.Enabled = true;
            if (curpage == 1)
            {
                this.lnkbtnOne.Enabled = false;//不显示第一页按钮
                this.lnkbtnUp.Enabled = false;//不显示上一页按钮
            }
            if (curpage == ps.PageCount)
            {
                this.lnkbtnNext.Enabled = false;//不显示下一页
                this.lnkbtnBack.Enabled = false;//不显示最后一页
            }
            this.labBackPage.Text = Convert.ToString(ps.PageCount);
            this.dlContent.DataSource = ps;
            this.dlContent.DataKeyField = "CardID";
            this.dlContent.DataBind();
        }
        protected void lnkbtnOne_Click(object sender, EventArgs e)
        {
            this.labPage.Text = "1";
            this.dlBind();
        }
        protected void lnkbtnUp_Click(object sender, EventArgs e)
        {
            this.labPage.Text = Convert.ToString(Convert.ToInt32(this.labPage.Text) - 1);
            this.dlBind();
        }
        protected void lnkbtnNext_Click(object sender, EventArgs e)
        {
            this.labPage.Text = Convert.ToString(Convert.ToInt32(this.labPage.Text) + 1);
            this.dlBind();
        }
        protected void lnkbtnBack_Click(object sender, EventArgs e)
        {
            this.labPage.Text = this.labBackPage.Text;
            this.dlBind();
        }
      

  5.   

    http://blog.csdn.net/wtpmcheng
    这里有分页的存储过程,你可以直接在SQL语句内就可以实现分页了!
    但是最好是别用控件自带的分页,那样的话页面加载起来会很慢的,如果用存储过程分页的话,你想查出多少条数据就随你了。