哪个好心的高手能给个GridView使用<PagerTemplate>自定义分页的完整代码学习一下啊,在网上找的全是少胳膊少腿的不能用~~~~
里面要有,当前页,总页数,共有记录数,和基本的分页功能,最好还能选择第几页的~!!MSDN我的也用过,功能太少~~~

解决方案 »

  1.   

    我之前也找了一个完整代码如下:
    谁能改得能够正常使用也好啊
    原地址:http://www.x2blog.cn/EvilYang/5944.html<asp:GridView ID="gvResult" runat="server"  Font-Names="#24429b" ForeColor="#333333" HorizontalAlign="Center">
     <FooterStyle  Font-Bold="True" ForeColor="White" BackColor="#014F8A" />
      <RowStyle BackColor="#EFF3FB" BorderColor="#24429B"  />
     <SelectedRowStyle  Font-Bold="True" BackColor="#D1DDF1" ForeColor="#333333"  />
      <PagerStyle   HorizontalAlign="Center" BackColor="#D0E9FF" ForeColor="#24429B" />
     <HeaderStyle  Font-Bold="True" BackColor="#D0E9FF" ForeColor="#24429B"  />
     <AlternatingRowStyle BackColor="White" /> <Columns>
     <asp:BoundField DataField="Cust_Name" HeaderText="客户名称">
     <ItemStyle ForeColor="Black" />
      </asp:BoundField>
      <asp:BoundField DataField="USER_Exch" HeaderText="客户区域" />       </Columns><PagerSettings FirstPageText="第一页" LastPageText="最后一页"  NextPageText="下一页" PreviousPageText="上一页" Mode="NextPreviousFirstLast" />
    <EditRowStyle BackColor="#2461BF" />
     <EmptyDataTemplate>
                 <font color="#24429B">没有与之匹配的结果!</font>
     </EmptyDataTemplate>
     <PagerTemplate>
                <font color="#24429b">  当前<asp:Label ID="lblCurrentPage" runat="server" Text="Label"></asp:Label>/<asp:Label ID="lblTotalPage" runat="server" Text="Label"></asp:Label>页 共有<asp:Label ID="lblTotalCount" runat="server" Text="Label"></asp:Label>条记录
     <asp:HyperLink ID="hlFirst" runat="server" ForeColor="#24429B">第一页</asp:HyperLink>
     |<asp:HyperLink ID="hlPrevious" runat="server" ForeColor="#24429B">上一页</asp:HyperLink>
    <asp:HyperLink ID="hlNext" runat="server" ForeColor="#24429B">下一页</asp:HyperLink>
      |<asp:HyperLink ID="hlLast" runat="server" ForeColor="#24429B">最后一页</asp:HyperLink>&nbsp; | &nbsp;&nbsp;&nbsp; 转到第<asp:DropDownList  ID="ddlRandom" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlRandom_SelectedIndexChanged">
     </asp:DropDownList>页
     </PagerTemplate>
    </asp:GridView>
    代码部分。比较重要的。
     protected void gvResult_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.Pager)
            {            //显示记录数
                Label lblCurrentPage = (Label)(e.Row.FindControl("lblCurrentPage"));
                Label lblTotalPage = (Label)(e.Row.FindControl("lblTotalPage"));
                Label lblTotalCount = (Label)(e.Row.FindControl("lblTotalCount"));
                lblCurrentPage.Text = this.currentPage.ToString();
                lblTotalPage.Text = this.totalPage.ToString();
                lblTotalCount.Text = this.totalCount.ToString();
                //绑定分页按钮
                HyperLink hlFirst = (HyperLink)(e.Row.FindControl("hlFirst"));
                HyperLink hlPrevious = (HyperLink)(e.Row.FindControl("hlPrevious"));
                HyperLink hlNext = (HyperLink)(e.Row.FindControl("hlNext"));
                HyperLink hlLast = (HyperLink)(e.Row.FindControl("hlLast"));
                if (currentPage > 1)
                {
                    hlFirst.NavigateUrl = "Default.aspx?id=1";
                    hlPrevious.NavigateUrl = "Default.aspx?id=" + (this.currentPage - 1);
                }
                if (currentPage < totalPage)
                {
                    hlNext.NavigateUrl = "Default.aspx?id=" + (this.currentPage + 1);
                    hlLast.NavigateUrl = "Default.aspx?id=" + this.totalPage;
                }
                //绑定转到第几页
                DropDownList ddlRandom = (DropDownList)(e.Row.FindControl("ddlRandom"));
                for (int i = 1; i <= totalPage; i++)
                {
                    ddlRandom.Items.Add(new ListItem(i.ToString(), i.ToString()));
                }
                ddlRandom.SelectedIndex = currentPage - 1;
            }
           if (e.Row.RowState == DataControlRowState.Normal)
             {
             .............
             }
    }
    protected void gvFavorite_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            string tempeteId = this.gvFavorite.DataKeys[e.RowIndex].Value.ToString();
            Favorites favorites = new Favorites();
            bool flag=favorites.DeleteFavorite(tempeteId);
            if (flag)
            {
                Response.Write("<script lauguage='javascript'> alert('你已经成功删除了一条模板')</script>");
            }        else
            {
                Response.Write("<script lauguage='javascript'> alert('删除失败')</script>");
            }
            this.BindGvFavorite();    }
       protected void ddlRandom_SelectedIndexChanged(object sender, EventArgs e)
        {
            GridViewRow gvr = this.gvResult.BottomPagerRow;
            DropDownList ddlRandom = (DropDownList)(gvr.FindControl("ddlRandom"));
            this.currentPage = Convert.ToInt32(ddlRandom.SelectedIndex.ToString()) + 1;
            Response.Redirect("QueryDefault.aspx?id=" + this.currentPage);    }
    sql如下:Select * from QUERY_USER_INFO where rowid in (select rowid from QUERY_USER_INFO where rownum <:CurrentPage*" + pageCount + "+1 minus select rowid from QUERY_USER_INFO where rownum<(:CurrentPage-1)*" + pageCount + "+1)"
      

  2.   

    public static string strCutePage(object Totalrec,object PageSize,int PageNO,string Url)//总数据行数,每页行数,当前页
    {
    int totalpage = CommonClass.CutPage(Convert.ToSingle(Totalrec),Convert.ToSingle(PageSize)) ;  StringBuilder Tempstr = new StringBuilder();
    StringBuilder s = new StringBuilder(); 
    s.Append( " Go:<select name=\"select\" onChange='javascript:window.open(this.options[this.selectedIndex].value,\"_self\")'>"); 
    for (int SelectInt = 1; SelectInt <= totalpage; SelectInt++) 

    if (SelectInt == PageNO) 

    s.Append("<option value=\"" + Url + SelectInt + "\" selected>第" + SelectInt + "页</option>"); 

    else 

    s.Append( "<option value=\"" + Url + SelectInt + "\">第" + SelectInt + "页</option>"); 


    s.Append( "</select> "); 
      if (totalpage == 1 || totalpage == 0) 

    Tempstr.Append( "页次:<font color=red><b>" + PageNO + "</b></font>/" + totalpage + "&nbsp;&nbsp;" + PageSize + "篇/页&nbsp;&nbsp;<a disabled=\"disabled\">首页</a> &nbsp; <a disabled=\"disabled\">上一页</a> &nbsp; <a disabled=\"disabled\">下一页</a> &nbsp; <a disabled=\"disabled\">尾页</a> &nbsp;合计&nbsp;<font color=red><b>" + Totalrec + "</b></font>&nbsp;篇"); 

    else if (PageNO == 1 & !(totalpage == 1)) 

    Tempstr.Append( "页次:<font color=red><b>" + PageNO + "</b></font>/" + totalpage + "&nbsp;&nbsp;" + PageSize + "篇/页&nbsp;&nbsp;<a disabled=\"disabled\">首页</a> &nbsp; <a disabled=\"disabled\">上一页</a> &nbsp; <a href=\"" + Url + (PageNO + 1) + "\">下一页</a> &nbsp; <a href=\"" + Url + totalpage + "\">尾页</a> &nbsp;合计&nbsp;<font color=red><b>" + Totalrec + "</b></font>&nbsp;篇" ); 

    else if (!(PageNO == 1) & !(PageNO == totalpage)) 

    Tempstr.Append( "页次:<font color=red><b>" + PageNO + "</b></font>/" + totalpage + "&nbsp;&nbsp;" + PageSize + "篇/页&nbsp;&nbsp;<a href=\"" + Url + "1\">首页</a> &nbsp; <a <a href=\"" + Url + (PageNO - 1) + "\">上一页</a> &nbsp; <a href=\"" + Url + (PageNO + 1) + "\">下一页</a> &nbsp; <a href=\"" + Url + totalpage + "\">尾页</a> &nbsp;合计&nbsp;<font color=red><b>" + Totalrec + "</b></font>&nbsp;篇"); 

    else if (PageNO == totalpage) 

    Tempstr.Append("页次:<font color=red><b>" + PageNO + "</b></font>/" + totalpage + "&nbsp;&nbsp;" + PageSize + "篇/页&nbsp;&nbsp;<a href=\"" + Url + "1\">首页</a> &nbsp; <a href=\"" + Url + (PageNO - 1) + "\">上一页</a> &nbsp; <a disabled=\"disabled\">下一页</a> &nbsp; <a disabled=\"disabled\">尾页</a> &nbsp;合计&nbsp;<font color=red><b>" + Totalrec + "</b></font>&nbsp;篇" ); 

    return Tempstr.ToString() + s.ToString(); 
    }
    //这个合适用到URL转发
    public static string strCutePage(object Totalrec,object PageSize,int PageNO,string Url1,string Url2)//总数据行数,每页行数,当前页
    {
    int totalpage = CommonClass.CutPage(Convert.ToSingle(Totalrec),Convert.ToSingle(PageSize)) ;  StringBuilder Tempstr = new StringBuilder();
    StringBuilder s = new StringBuilder();
    s.Append(" Go:<select name=\"select\" onChange='javascript:window.open(this.options[this.selectedIndex].value,\"_self\")'>"); 
    for (int SelectInt = 1; SelectInt <= totalpage; SelectInt++) 

    if (SelectInt == PageNO) 

    s.Append("<option value=" + Url1 + SelectInt + Url2+" selected>第" + SelectInt + "页</option>"); 

    else 

    s.Append("<option value=" + Url1 + SelectInt + Url2+">第" + SelectInt + "页</option>"); 


    s.Append("</select> "); 
      if (totalpage == 1 || totalpage == 0) 

    Tempstr.Append("页次:<font color=red><b>" + PageNO + "</b></font>/" + totalpage + "&nbsp;&nbsp;" + PageSize + "篇/页&nbsp;&nbsp;<a disabled=\"disabled\">首页</a> &nbsp; <a disabled=\"disabled\">上一页</a> &nbsp; <a disabled=\"disabled\">下一页</a> &nbsp; <a disabled=\"disabled\">尾页</a> &nbsp;合计&nbsp;<font color=red><b>" + Totalrec + "</b></font>&nbsp;篇"); 

    else if (PageNO == 1 & !(totalpage == 1)) 

    Tempstr.Append("页次:<font color=red><b>" + PageNO + "</b></font>/" + totalpage + "&nbsp;&nbsp;" + PageSize + "篇/页&nbsp;&nbsp;<a disabled=\"disabled\">首页</a> &nbsp; <a disabled=\"disabled\">上一页</a> &nbsp; <a href=" + Url1 + Convert.ToString(PageNO + 1) +Url2+ ">下一页</a> &nbsp; <a href=" + Url1 + totalpage + Url2+">尾页</a> &nbsp;合计&nbsp;<font color=red><b>" + Totalrec + "</b></font>&nbsp;篇" ); 

    else if (!(PageNO == 1) & !(PageNO == totalpage)) 

    Tempstr.Append("页次:<font color=red><b>" + PageNO + "</b></font>/" + totalpage + "&nbsp;&nbsp;" + PageSize + "篇/页&nbsp;&nbsp;<a href=" + Url1 + "1"+Url2+">首页</a> &nbsp; <a <a href=" + Url1 + (PageNO - 1) + Url2+">上一页</a> &nbsp; <a href=" + Url1 + (PageNO + 1) + Url2+">下一页</a> &nbsp; <a href=" + Url1 + totalpage +Url2+ ">尾页</a> &nbsp;合计&nbsp;<font color=red><b>" + Totalrec + "</b></font>&nbsp;篇"); 

    else if (PageNO == totalpage) 

    Tempstr.Append("页次:<font color=red><b>" + PageNO + "</b></font>/" + totalpage + "&nbsp;&nbsp;" + PageSize + "篇/页&nbsp;&nbsp;<a href=" + Url1 + "1"+Url2+">首页</a> &nbsp; <a href=" + Url1 + (PageNO - 1) + Url2+">上一页</a> &nbsp; <a disabled=\"disabled\">下一页</a> &nbsp; <a disabled=\"disabled\">尾页</a> &nbsp;合计&nbsp;<font color=red><b>" + Totalrec + "</b></font>&nbsp;篇"); 
    }  return Tempstr.ToString() + s.ToString(); 
    }
    #endregion
    效果http://www.mytopwin.com/Soft/Class/2_1.html
      

  3.   

    可以用 aspnetpager 组件
    很方便的说  ^_^
      

  4.   

    aspnetpager能用在ASP.NET2.0的GirdView上?我试过好像不行,没有任何效果