真的很菜,但是遇到这个任务,没办法,硬着头皮在弄,求教各位大神,帮忙改改,只要实现上一页,下一页,跳转到第几页就好的。
<PagerTemplate>
                  <div id="GvPage">
                    共<asp:Label ID="Lb_count" runat="server"
                                                    Text="<%#((GridView)Container.NamingContainer).PageCount %>"></asp:Label>页
                                                <asp:LinkButton ID="LinkButtonFirstPage" runat="server" CommandArgument="First" CommandName="Page"
                                                    Enabled="<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>">首页</asp:LinkButton>
                                                <asp:LinkButton ID="LinkButtonPreviousPage" runat="server" CommandArgument="Prev"
                                                    CommandName="Page" Enabled="<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>">上一页</asp:LinkButton>
                                                转到第<asp:TextBox ID="txtNum" runat="server" Width="25px"></asp:TextBox>页
                                                <asp:LinkButton ID="btnGo" runat="server" CausesValidation="False" CommandArgument="btnGO"
                                                    CommandName="Page" Text="跳转" OnClick="btnGo_Click" />
                                                <asp:LinkButton ID="LinkButtonNextPage" runat="server" CommandArgument="Next" CommandName="Page"
                                                    Enabled="<%# ((GridView)Container.NamingContainer).PageIndex != ((GridView)Container.NamingContainer).PageCount - 1 %>">下一页</asp:LinkButton>
                                                <asp:LinkButton ID="LinkButtonLastPage" runat="server" CommandArgument="Last" CommandName="Page"
                                                    Enabled="<%# ((GridView)Container.NamingContainer).PageIndex != ((GridView)Container.NamingContainer).PageCount - 1 %>">尾页</asp:LinkButton>
                                            </div>
                                </PagerTemplate>

解决方案 »

  1.   

    这是我ASP页面的分页显示的,但是这根本没有数据,共几页不显示。主要是后台的绑定数据函数不会写。希望大家帮帮,最后能帮我写几段代码,真的很急,三天了,没什么进展。
    我的QQ 674170665
      

  2.   

    有第三方分页控件,为何不用?
    aspnetpager
    分页代码百度一下出来很多
      

  3.   

    http://hi.baidu.com/hjywyj/item/648d39433cdb3df0dc0f6cb3
      

  4.   

    自带的分页效率很低,你可以试试AspNetPager+存储过程,示例:http://www.webdiyer.com/controls/aspnetpager
      

  5.   

    之前我也跟你一样为了一个分页找了半天的代码但用上去总有错后来不去找自己去摸索了下、发现其实挺简单的,这里是个完整的初级菜鸟的分页,希望你可以看懂和扩展:
    1、在.aspx页面在你需要分页的位置加上:
    <asp:Button ID="Button1" runat="server" Text="上一页" onclick="Button1_Click" />
    <asp:Button ID="Button2" runat="server" Text="下一页" onclick="Button2_Click" />
    这两控件
    2、在.aspx.cs文件上写入代码:
        public void sql()
        {
            string sqlstr = "select * from Album_Table";
            DataTable db3 = DB.ExecuteDataSet(sqlstr);        DataView dev= DB.ExecuteDataSet(sqlstr).DefaultView;        DataGrid1.DataSource = dev;  
            DataGrid1.DataBind();  //数据绑定到DataGrid1
            string counmpage;
            if (dev.Count > 0)
            {
                if (dev.Count % 10 == 0)  //每页10条数据
                    counmpage = Convert.ToString(dev.Count / DataGrid1.PageSize);
                else
                {
                    counmpage = Convert.ToString(dev.Count / DataGrid1.PageSize + 1);            }
                if (DataGrid1.CurrentPageIndex == 0)
                {
                    Button1.Enabled = false;            }
                else
                {
                    Button1.Enabled = true;
                }
                if (DataGrid1.CurrentPageIndex.ToString() == Convert.ToString(Convert.ToInt32(counmpage) - 1))
                {
                    Button2.Enabled = false;
                }
                else
                {
                    Button2.Enabled = true;
                }        }
            else
            {
                DataGrid1.DataSource = null;
                DataGrid1.DataBind();
            }    }
        protected void Button1_Click(object sender, EventArgs e)
        {
            DataGrid1.CurrentPageIndex = DataGrid1.CurrentPageIndex - 1;
            DataGrid1.DataBind();
            sql();
        }
        protected void Button2_Click(object sender, EventArgs e)
        {
            DataGrid1.CurrentPageIndex = DataGrid1.CurrentPageIndex + 1;
            DataGrid1.DataBind();
            sql();
        }
      

  6.   

    如果不会用AspNetPager的话,建议自己写一个web自定义分页控件,自己学会封装。给个简单的,没有做成控件的。前台:
    <table id="Table2"    width="98%" align="right">
                       <tr>
                           <td align="right" >第
                                <asp:literal id="PageIndex" runat="server"></asp:literal> 页 共
                                <asp:literal id="PageCount" runat="server"></asp:literal> 页 共
                                <asp:literal id="RecordCount" runat="server"></asp:literal> 条
                                <asp:linkbutton id="First" runat="server" CommandName="First">首页</asp:linkbutton>
                                <asp:linkbutton id="Prev" runat="server" CommandName="Prev">上一页</asp:linkbutton> 
                                <asp:linkbutton id="Next" runat="server" CommandName="Next">下一页</asp:linkbutton>
                                <asp:linkbutton id="Last" runat="server" CommandName="Last">尾页</asp:linkbutton>
                                转<asp:TextBox ID="txtPageIndex" Runat="server" Width="32px"></asp:TextBox>
                                <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
                                            ControlToValidate="txtPageIndex" Display="Dynamic" ErrorMessage="只能是大于0的整数" 
                                            ForeColor="Red" 
                                        ValidationExpression="^([0-9]*[1-9][0-9]*)$"></asp:RegularExpressionValidator>
                                页&nbsp; 
                           </td>
                            <td align="left" width="3%">
                                
                                <asp:Button ID="btnRect" Text="Go" Runat="server" Width="24px" Height="15px" onclick="btnRect_Click1" CssClass="IOP_Input01"></asp:Button> </td>
                       </tr>
                  </table>
    后台用到的一些方法:
    private void Bangding()
    {
        DataTable dt=要绑定的数据; 
        recordCount = dt.Rows.Count;
                pageCount = (int)Math.Ceiling(recordCount * 1.0 / dg.PageSize);
                if (recordCount == 0)
                {
                    dg.CurrentPageIndex = 0;
                }
                else if (dg.CurrentPageIndex >= pageCount)
                {
                    dg.CurrentPageIndex = pageCount - 1;
                }            dg.DataSource = dt;
                dg.DataBind();
                NavigationStateChange();
    }#region Web Form Designer generated code
            override protected void OnInit(EventArgs e)
            {
                //
                // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
                //
                InitializeComponent();
                base.OnInit(e);
            }        /// <summary>
            /// 设计器支持所需的方法 - 不要使用代码编辑器修改
            /// 此方法的内容。
            /// </summary>
            private void InitializeComponent()
            {
                this.First.Click += new System.EventHandler(this.Test_Click);
                this.Prev.Click += new System.EventHandler(this.Test_Click);
                this.Next.Click += new System.EventHandler(this.Test_Click);
                this.Last.Click += new System.EventHandler(this.Test_Click);
                this.Load += new System.EventHandler(this.Page_Load);
            }
            #endregion
    // 总页数
            public int PageCount
            {
                get { return this.dg.PageCount; }
            }
            //页大小
            public int PageSize
            {
                get { return this.dg.PageSize; }        
             }
            //页索引,从零开始
            public int PageIndex
            {
                get { return this.dg.CurrentPageIndex; }
                set { this.dg.CurrentPageIndex = value; }
            }
            // 纪录总数
            public int RecordCount
            {
                get { return recordCount; }
                set { recordCount = value; }
            }
            public void NavigationStateChange()
            {
                if (PageCount <= 1)//( RecordCount <= PageSize )
                {
                    this.First.Enabled = false;
                    this.Prev.Enabled = false;
                    this.Next.Enabled = false;
                    this.Last.Enabled = false;
                }
                else 
                {
                    if (PageIndex == 0)
                    {
                        this.First.Enabled = false;
                        this.Prev.Enabled = false;
                        this.Next.Enabled = true;
                        this.Last.Enabled = true;                }
                    else if (PageIndex == PageCount - 1)
                    {
                        this.First.Enabled = true;
                        this.Prev.Enabled = true;
                        this.Next.Enabled = false;
                        this.Last.Enabled = false;                }
                    else 
                    {
                        this.First.Enabled = true;
                        this.Prev.Enabled = true;
                        this.Next.Enabled = true;
                        this.Last.Enabled = true;
                    }            }
                if (RecordCount == 0)
                    this.PageCount.Text = "0";
                else
                    this.PageCount.Text = PageCount.ToString();
                if (RecordCount == 0)
                    this.PageIndex.Text = "0";
                else
                    this.PageIndex.Text = (PageIndex + 1).ToString();            this.RecordCount.Text = RecordCount.ToString();
            }        protected void btnRect_Click1(object sender, EventArgs e)
            {
                int num = Int32.Parse((this.txtPageIndex.Text != "") ? this.txtPageIndex.Text : "0");
                if (num <= 0 || num > (this.dg.PageCount))
                    return;
                else
                {
                    PageIndex = (num - 1);
                    Bangding();
                }
            }        private void Test_Click(object sender, System.EventArgs e)
            {
                LinkButton btn = (LinkButton)sender;
                switch (btn.CommandName)
                {
                    case "First":
                        PageIndex = 0;
                        break;
                    case "Prev":
                        PageIndex = PageIndex - 1;
                        break;
                    case "Next":
                        PageIndex = PageIndex + 1;
                        break;
                    case "Last":
                        PageIndex = PageCount - 1;
                        break;
                }
                Bangding();
            }
      

  7.   

    给你现成的、刚好以前写过一个、
    还是建议你去下个分页控件、人家都写好了、功能很强大  aspnetpager
    HTML代码    <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" 
            DataSourceID="ObjectDataSource1" 
            onpageindexchanging="GridView2_PageIndexChanging">
            <Columns>
                <asp:BoundField DataField="Description" HeaderText="Description" 
                    SortExpression="Description" />
                <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
            </Columns>
                    <PagerTemplate>
                    <asp:Label ID="lblPage" runat="server" Text='<%# "第" + (((GridView)Container.NamingContainer).PageIndex + 1)  + "页/共" + (((GridView)Container.NamingContainer).PageCount) + "页" %> '></asp:Label>
                    <asp:LinkButton ID="lbnFirst" runat="Server" Text="首页"  Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>' CommandName="Page" CommandArgument="First" CssClass="aa" ></asp:LinkButton>
                    <asp:LinkButton ID="lbnPrev" runat="server" Text="上一页" Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>' CommandName="Page" CommandArgument="Prev" CssClass="aa" ></asp:LinkButton>
                    <asp:LinkButton ID="lbnNext" runat="Server" Text="下一页" Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != (((GridView)Container.NamingContainer).PageCount - 1) %>' CommandName="Page" CommandArgument="Next" CssClass="aa"></asp:LinkButton>
                    <asp:LinkButton ID="lbnLast" runat="Server" Text="尾页"   Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != (((GridView)Container.NamingContainer).PageCount - 1) %>' CommandName="Page" CommandArgument="Last" CssClass="aa"></asp:LinkButton>            转到第<asp:TextBox ID="TextBoxnewPage" runat="server" Width="25px" Text='<%#((GridView)Container.Parent.Parent).PageIndex+1 %>' />页
                <asp:LinkButton ID="btnGo" runat="server" Text="跳转" CausesValidation="true" CommandArgument="-2"
                    CommandName="Page" CssClass="aa" />
                <asp:RegularExpressionValidator ID="rev" runat="server" ControlToValidate="TextBoxnewPage"
                    ForeColor="Red" Font-Size="Small" ValidationExpression="^[0-9]*$">*请输入数字</asp:RegularExpressionValidator>
            </PagerTemplate>
        </asp:GridView>
    <%-- 不会写绑定数据的话这里拖个ObjectDataSource 去绑定就是了--%>
        <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
            onobjectcreating="ObjectDataSource1_ObjectCreating" SelectMethod="Get" 
            TypeName="Vanda.NHibernate.Cargos.CargoCategoryManager">
        </asp:ObjectDataSource>
    CS代码        protected void GridView2_PageIndexChanging(object sender, GridViewPageEventArgs e) {
                GridViewRow pagerow = GridView2.BottomPagerRow;
                GridView2.PageIndex = Convert.ToInt32((pagerow.FindControl("TextBoxnewPage") as TextBox).Text) - 1;
            }        protected void ObjectDataSource1_ObjectCreating(object sender, ObjectDataSourceEventArgs e) {
                e.ObjectInstance = Global.CargoCategoryManager;//这句是绑定数据用的、
            }        //你可以写后台代码去绑定数据、
            protected void Page_Load(object sender, EventArgs e) {
                BindGridView();
            }
            private void BindGridView() {
                IList<Cargos.CargoCategory> dd = Global.CargoCategoryManager.Get();//获取数据
                GridView1.DataSource = dd;
                GridView1.DataBind();
            }