我采用的真分页技术,在数据库中只要输入一个页数参数就可以选出此页的数据,我想在页面上用一个分页控件来控制显示的结果页面,该用什么空间啊?

解决方案 »

  1.   

    分页控件写起来也不是很复杂的。
    如果懒得写,可以用 AspNetPager
      

  2.   

    SQL2005中提供了行号,采用行号分页很简单
      

  3.   

    可以用吴旗娃的 aspnetpager控件,当然自己也可以试着写一个
      

  4.   

    楼主既然已经从数据库里得出分页后的数据了,要怎么显示还不是随便你。
    repeater girdview都可以啊
      

  5.   

    第一种方式使用自定义按钮实现分页功能,首页、上一页、下一页、末页及当前页面,总页数,分页几条,跳转第几页。  
    第二种方式使用HyperLinkPager分页控件。本示例在Visual Studio 2005+SQL Server 2005开发。1、使用脚本创建数据库、创建表、插入测试数据。数据库脚本2、示例项目采用三层架构,模型层、数据库访问层、数据访问层。
    第一种方式:使用自定义按钮实现分页功能,首页、上一页、下一页、末页及当前页面,总页数,分页几条,跳转第几页第二种方式:使用HyperLinkPager分页控件。
    这个下载示例:ASP.NET GridView分页控件 
      

  6.   

    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();
        }
      

  7.   

    上一页  下一页  是链接按钮
     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();
        }
      

  8.   

    我就奇怪了,这几天CSDN上所有涉及分页的帖子里总有人说只用存储过程分页,用存储过程从数据库中获取当前页而不是所有页的数据然后进行分页,这是最好也是最快的分页办法,但存储过程只是数据库中的东西,它只能为你获取分页的数据,难道存储过程还会自动在页面上生成上一页、下一页、首页、尾页以及数字按钮这样的导航链接吗?许多人问的分页的问题,其实就是怎么在页面上生成这些导航链接的问题,而不是用什么方法取数据的问题,分页存储过程和分页控件完全是两回事,他们相辅相成、各司其职,而不是互相对立的,我不太了解其它的分页控件的分页原理,就AspNetPager来说,它只生成导面上的分页导航链接,并在点击这些链接时触发PageChanged事件,以便在该事件处理程序中重新绑定和显示当前页的数据。所以你完全可以用存储过程来获取数据,用AspNetPager来生成分页导航链接,我写的很多的AspNetPager示例项目也都是这么做的。如果你只用存储过程,那你还得自己写很多代码来自己实现在页面上显示上一页、下一页这些导航链接,这不但费时间而且也有一定的难度,而且就算一次写好也难免以后不会发现bug,如果你只是想学习,那么完全可以自己写,多花点时间没关系,但如果你正在做项目,时间上比较紧,那么完全可以使用比较成熟的分页控件,象AspNetPager分页控件,从最初发布到现在已七八年了,经过这么多年的不断升级和完善,已经非常成熟了,你不用担心有什么大的bug,就算万一发现了bug,我都会随时帮助解决。如果你自己写代码实现,做个分页功能少说也得个把小时,这样还难以保证以后不出问题,用分页控件的话,一般一两分钟就可以搞定,一劳永逸,何乐而不为??
      

  9.   

    我只是知道aspnetpager控件但是没有用过,在网上搜到的用法都是个人总结的,您开发这个控件时有使用说明吗?如果有可否给个链接。。
      

  10.   

    有详细的帮助文档和示例项目:http://www.webdiyer.com/controls/aspnetpager