如何实现asp.net gridview数据分页显示?
就是当跳转某页时,只从数据库中查询该页的数据,而不是全部取出然后只显示一页。
数据库是SQL Server 2005,关于如何每次只取出一页数据这个我查了资料已经会了,关键是gridview界面实现,如何实现前进、后退、首页、末页、跳转等等。

解决方案 »

  1.   

    自己手动拼SQL,上一页,下一页都用按钮,自己写事件
      

  2.   

    AspNetPager存储过程分页
      

  3.   

    如何实现前进、后退、首页、末页、跳转?
    自定义GridView模板,或者另外做个web用户控件,放入这几个超链接(用LinkButton)。
    主要是控制变量“页码”即PageIndex的值,比如初始时是1,单击“前进”后加上1变为2,生成分页sql语句即可。还要考虑一些特殊情况:最后页、第一页,甚至要求高的还要考虑跳转时该页已不存在(被删除)的情况。
      

  4.   

    自动设置分页在GridView控件上显示如下页码信息:总页数、当前页、首页、上一页、下一页、尾页。
     创建总页数<asp:Label ID="Lab_PageCount" runat="server"  Text="<%# ((GridView)Container.NamingContainer).PageCount %>"></asp:Label> 创建但前页<asp:Label  ID="Lab_CurrentPage" runat="server"  Text="<%# ((GridView)Container.NamingContainer).PageIndex + 1 %>"></asp:Label>创建首页<asp:LinkButton ID="LBtn_FirstPage" runat="server" CommandArgument="First" CommandName="Page"Visible="<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>">首页</asp:LinkButton>创建上一页<asp:LinkButton ID="LBtn_PreviousPage" runat="server" CommandArgument="Prev" CommandName="Page"Visible="<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>">上一页</asp:LinkButton>创建下一页<asp:LinkButton ID="LBtn_NextPage" runat="server" CommandArgument="Next" CommandName="Page"Visible="<%# ((GridView)Container.NamingContainer).PageIndex != ((GridView)Container.NamingContainer).PageCount - 1 %>">下一页</asp:LinkButton>创建尾页<asp:LinkButton ID="LBtn_LastPage" runat="server" CommandArgument="Last" CommandName="Page"Visible="<%# ((GridView)Container.NamingContainer).PageIndex != ((GridView)Container.NamingContainer).PageCount - 1 %>">尾页</asp:LinkButton>代码不多贴了 给链接 自己去看吧
    http://www.cnblogs.com/liulanglang/archive/2007/08/04/842550.html
      

  5.   

    你可以把当前页村子viewstate里,然后来跳转。
      

  6.   

    以DataList为例public void getMessageList()
        {
            DataSet ds = myData.getDataSet("server=.;database=‘数据库名称’;uid=数据库服务器登录账号; pwd=数据库服务器登录密码;", CommandType.Text, "select * from [lyInfo] order by [lyDate] desc");
            int currentpage = Convert.ToInt32(this.labCurrentPage.Text);
            PagedDataSource ps = new PagedDataSource();
            ps.AllowPaging = true;
            ps.PageSize = 5;
            ps.CurrentPageIndex = currentpage - 1;
            ps.DataSource = ds.Tables[0].DefaultView;
            this.labTotalPage.Text = ps.PageCount.ToString();
            this.dl_Message.DataSource = ps;
            this.dl_Message.DataBind();        this.lkb_shouye.Enabled = true;
            this.lkb_shangyiye.Enabled = true;
            this.lkb_weiye.Enabled = true;
            this.lkb_xiayiye.Enabled = true;
            if (ps.IsFirstPage)
            {
                this.lkb_shouye.Enabled = false;
                this.lkb_shangyiye.Enabled = false;
            }
            if (ps.IsLastPage)
            {
                this.lkb_weiye.Enabled = false;
                this.lkb_xiayiye.Enabled = false;
            }
        }//首页
        protected void lkb_shouye_Click(object sender, EventArgs e)
        {
            this.labCurrentPage.Text = "1";
            this.lkb_shouye.Enabled = false;
            this.lkb_shangyiye.Enabled = false;
            getMessageList();
        }//上一页
        protected void lkb_shangyiye_Click(object sender, EventArgs e)
        {
            if (this.labCurrentPage.Text == "1")
            {
                this.RegisterStartupScript("alert", "<scrip>alter('已经是第一页')</script>");
                getMessageList();
            }
            this.labCurrentPage.Text = (Convert.ToInt32(this.labCurrentPage.Text) - 1).ToString();
            getMessageList();
        }//下一页
        protected void lkb_xiayiye_Click(object sender, EventArgs e)
        {
            this.labCurrentPage.Text = (Convert.ToInt32(this.labCurrentPage.Text) + 1).ToString();
            getMessageList();
        }//尾页
        protected void lkb_weiye_Click(object sender, EventArgs e)
        {
            this.labCurrentPage.Text = this.labTotalPage.Text; ;
            this.lkb_weiye.Enabled = false;
            this.lkb_xiayiye.Enabled = false;
            getMessageList();
        } 
      

  7.   

    http://www.webdiyer.com/Controls/AspNetPager/Downloads和这个搭配 ~
      

  8.   

    还有一种 用 object datasoruse 也可以~
      

  9.   

    AspNetPager 
    用这个控件把  很好用
      

  10.   


    点GridView查看属性
    属性里有个分页
    AllowPaging=ture  允许分页
    PageIndex=0  显示第一页
    PageSetting 可以设置首页 尾页 下一页和上一页,Model=NextPrevious
    例如:FirstPageText=首页
    pageSize是设置每页显示几条信息
        /// <summary>
        /// GridView翻页显示新数据,无方法会报错
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            this.GridView1.PageIndex=e.NewPageIndex;//获取当前显示页的索引
            this.GridView1.DataSource =..............;//设置数据源数据源
            this.GridView1.DataBind();//绑定    }
      

  11.   

    Aspnetpage 应该是全部查出来的。如果要只差一页的话,就写个存储过程吧
      

  12.   

      gridView有自带的分页功能,,你可以在后台绑定数据,,然后控件有个是否分页的属性,,为ture,
     然后在分页事件中写代码,,,
      

  13.   

    <webdiyer:AspNetPager ID="anpnews" CssClass="" CurrentPageButtonClass="cpb" runat="server"
            AlwaysShow="True" FirstPageText="首页" LastPageText="尾页" NextPageText="下一页" PageSize="2"
            PrevPageText="上一页" ShowCustomInfoSection="Right" showinputbox="Never" CustomInfoTextAlign="Left"
            LayoutType="Table" CustomInfoHTML="第%CurrentPageIndex%页  共%PageCount%页" OnPageChanging="anpvote_PageChanging"
            EnableUrlRewriting="true" UrlRewritePattern="../product_{0}.aspx">
        </webdiyer:AspNetPager>
      

  14.   

    gridview不是有自动分页的功能吗?
    用不着写代码的