高分求asp.net中用gridview手动分页方法原码,邮箱地址[email protected]

解决方案 »

  1.   

    用存储过程;
    你想用手动的也可以,代码如下:
    for (int i = 0; i < ds.Tables["ExtensionList"].Rows.Count; i++)
                    {
                        if (gvview.PageIndex == 0)
                        {
                            if(i < index)
                            {
                                date = ds.Tables["ExtensionList"].Rows[i]["year"].ToString().Trim() + "年" + ds.Tables["ExtensionList"].Rows[i]["month"].ToString().Trim() + "月";
                                gvview.Rows[i].Cells[10].Text = date;
                            }
                        }
                        else
                        {
                            int count = gvview.PageIndex;
                            if(i==0)
                            {
                                i = index * count;
                            }
                            
                            if (i < (index * (count + 1)))
                            {
                                date = ds.Tables["ExtensionList"].Rows[i]["year"].ToString().Trim() + "年" + ds.Tables["ExtensionList"].Rows[i]["month"].ToString().Trim() + "月";
                                gvview.Rows[num].Cells[10].Text = date;
                                num++;
                            }
                            else
                            {
                                num = 0;
                            }
                        }
                    }
                }
      

  2.   

    http://blog.csdn.net/21aspnet/archive/2007/03/25/1540301.aspx
      

  3.   


    using   System;   
      using   System.Data;   
      using   System.Configuration;   
      using   System.Collections;   
      using   System.Web;   
      using   System.Web.Security;   
      using   System.Web.UI;   
      using   System.Web.UI.WebControls;   
      using   System.Web.UI.WebControls.WebParts;   
      using   System.Web.UI.HtmlControls;   
      using   System.Data.SqlClient;   
        
        
      public   partial   class   Default   :   System.Web.UI.Page   
      {   
              private   DataSet   dsGrid;   
        
              protected   void   Page_Load(object   sender,   EventArgs   e)   
              {   
                      //Button1.Attributes["onclick"]   =   "return   slcNo_click();";   
                      GridViewBind("");   
              }   
        
              //--------------为GridView绑定数据集中的相应字段------------------   
              private   void   GridViewBind(string   Sqlsort)   
              {   
                      try   
                      {   
                              String   sendsGridtrSQL   =   "SELECT   id,name,price,quantities,price*quantities   as   totleprice   FROM   order1"   +   Sqlsort;   
                              String   sendTableName   =   "order1";   
                              LinkDataBase   link   =   new   LinkDataBase();   
                                
                              dsGrid   =   link.SelectDataBase(sendsGridtrSQL,   sendTableName);   
        
                              GridView1.DataSource   =   dsGrid.Tables["order1"].DefaultView;   
                              GridView1.DataBind();   
        
                              LblCurrentIndex.Text   =   "第   "   +   (GridView1.PageIndex   +   1).ToString()   +   "   页";   
                              LblPageCount.Text   =   "共   "   +   GridView1.PageCount.ToString()   +   "   页";   
                              LblRecordCount.Text   =   "总共   "   +   dsGrid.Tables[0].Rows.Count.ToString()   +   "   条";   
                              if   (dsGrid.Tables[0].Rows.Count   ==   0)   
                              {   
                                      btnFirst.Visible   =   false;   
                                      btnPrev.Visible   =   false;   
                                      btnNext.Visible   =   false;   
                                      btnLast.Visible   =   false;   
        
                                      LblCurrentIndex.Visible   =   false;   
                                      LblPageCount.Visible   =   false;   
                                      LblRecordCount.Visible   =   false;   
                              }   
                              else   if   (GridView1.PageCount   ==   1)   
                              {   
                                      btnFirst.Visible   =   false;   
                                      btnPrev.Visible   =   false;   
                                      btnNext.Visible   =   false;   
                                      btnLast.Visible   =   false;   
                              }   
        
                              //   计算生成分页页码,分别为:"首   页"   "上一页"   "下一页"   "尾   页"   
                              btnFirst.CommandName   =   "1";   
                              btnPrev.CommandName   =   (GridView1.PageIndex   ==   0   ?   "1"   :   GridView1.PageIndex.ToString());   
        
                              btnNext.CommandName   =   (GridView1.PageCount   ==   1   ?   GridView1.PageCount.ToString()   :   (GridView1.PageIndex   +   2).ToString());   
                              btnLast.CommandName   =   GridView1.PageCount.ToString();   
                              //   
                      }   
                      catch   (Exception   ex)   
                      {   
                              Response.Write("数据库错误,错误原因:"   +   ex.Message);   
                              Response.End();   
                      }   
              }   
        
              protected   void   PagerButtonClick(object   sender,   EventArgs   e)   
              {   
                      GridView1.PageIndex   =   Convert.ToInt32(((LinkButton)sender).CommandName)   -   1;   
                      GridViewBind("");   
              }   
        
              protected   void   GridView1_RowDataBound(object   sender,   GridViewRowEventArgs   e)   
              {   
                      e.Row.Attributes["onmouseover"]   =   "ItemOver(this)";   
              }   
        
              //显示checkBox选择的项   
              protected   void   Button1_Click(object   sender,   EventArgs   e)   
              {   
                      string   str   =   "";   
                      string[]   ckb   =   null;   
        
                      str   =   Request.Form.Get("checkboxname");   
                      ckb   =   str.Split(new   char[]   {   ','   });   
        
                      Response.Write("直接在页面中得到的值为:"   +   str   +   "<br>");   
        
                      Response.Write("处理后存放在数组中,如下:<br>");   
                      for   (int   i   =   0;   i   <   ckb.Length;   i++)   
                      {   
                              Response.Write("ckb["   +   i   +   "]的值为:"   +   ckb[i]   +   "<br>");   
                      }   
              }   
        
              //GridView1排序   
              protected   void   GridView1_Sorting(object   sender,   GridViewSortEventArgs   e)   
              {   
                      string   sql   =   "";   
        
                      if   (ViewState["SortDirection"]   ==   null   ||   ViewState["SortDirection"].ToString().CompareTo("")   ==   0)   
                      {   
                              ViewState["SortDirection"]   =   "   desc";   
                      }   
                      else   
                              ViewState["SortDirection"]   =   "";   
        
                      sql   =   "   order   by   "   +   e.SortExpression   +   ViewState["SortDirection"];   
        
                      GridViewBind(sql);   
              }   
        
              //页脚合计设置   
              protected   void   GridView1_DataBound(object   sender,   EventArgs   e)   
              {   
        
                      GridViewRow   footer   =   GridView1.FooterRow;   
                      footer.Visible   =   true;   
                      //footer.Cells[0].ColumnSpan   =   6;   
                      //footer.Cells[0].HorizontalAlign   =   HorizontalAlign.Right;   
                      //footer.Cells.RemoveAt(2);   
                      //footer.Cells.RemoveAt(1);   
        
                      Int32   rowCount   =   dsGrid.Tables["order1"].Rows.Count;   
                      Decimal   total   =   0.00M;   
                      for   (Int32   i   =   0;   i   <   rowCount;   i++)   
                      {   
                              total   =   total   +   Decimal.Parse(getDataSetColumnValue(i));   
                      }   
        
                      footer.Cells[6].Text   =   "合计:¥"   +   total.ToString();   
              }   
        
              //取DataSet的某行某列的值   
              private   String   getDataSetColumnValue(int   row)     
              {   
                      String   dsGridColumnValue;   
                      dsGridColumnValue   =   dsGrid.Tables["order1"].Rows[row]["totleprice"].ToString();   
                      return   dsGridColumnValue;   
              }   
        
      }   
      

  4.   

    网上去下一个AspNetPage,网上到处都有,很好的一个空间!
      

  5.   

    4楼,我用了你的方法,只不过是没有用到DropDownList控件,最后页数,数据总条数都能正常显示,就是在点击上一页,下一页的时候老是不跳转页面,什么问题呀,
      

  6.   

    public class Pager : WebControl, INamingContainer
        {
            private ImageButton imgbtn_Frist;
            private ImageButton imgbtn_Prev;
            private ImageButton imgbtn_Next;
            private ImageButton imgbtn_Last;
            private DropDownList ddl_Page;
            private Label lbl_RecodeCount;
            private Label lbl_PageCount;
            private int _pageSize;        private string _fistImageUrl;
            private string _prevImageUrl;
            private string _nextImageUrl;
            private string _lastImageUrl;
            private string _ddlPageCSS;        private bool _notShowCount = false;
            private static readonly object EventPageChange = new object();
            public Pager()
            {
                FistImageUrl = "/images/firstpage.gif";
                PrevImageUrl = "/images/uppage.gif";
                NextImageUrl = "/images/nextpage.gif";
                LastImageUrl = "/images/lastpage.gif";
                DdlPageCSS = "page";
            }
            [Description("每页显示的纪录数"),DefaultValue("15")]
            public virtual int PageSize
            {
                get
                {
                    return _pageSize != 0 ? _pageSize : 15;
                }
                set
                {
                    if (value == _pageSize)
                        return;                _pageSize = value;
                    if (value > 0)
                    {
                        PageCount = (RecordCount % value == 0 ? RecordCount / value : RecordCount / value + 1);//计算总页数
                    }
                   
                }
            }        [Description("总纪录数"),DefaultValue("0")]
            public virtual int RecordCount
            {
                get
                {
                    EnsureChildControls();
                    return lbl_RecodeCount.Text.Trim() != "" ? int.Parse(lbl_RecodeCount.Text.Trim()) : 0;
                }
                set
                {
                    if (value== RecordCount)
                        return;                EnsureChildControls();                lbl_RecodeCount.Text = value.ToString();
                    if (value > 0)
                    {
                       PageCount = (value % PageSize == 0 ? value / PageSize : value / PageSize + 1);//计算总页数
                    }
                  
                }
            }        [Description("当前页码"),DefaultValue("0")]
            public virtual int PageIndex
            {
                get
                {
                    EnsureChildControls();
                    return ddl_Page.SelectedValue != "" ? int.Parse(ddl_Page.SelectedValue) : 0;
                }
               set
                {
                    EnsureChildControls();
                    if (value >= PageCount)
                        value = PageCount - 1;
                    ddl_Page.SelectedValue = value.ToString();
                }
            }        [Description("总页数"),DefaultValue("0")]
            public virtual int PageCount
            {
                get
                {
                    EnsureChildControls();
                    return lbl_PageCount.Text != "" ? int.Parse(lbl_PageCount.Text) : 0;
                }
                private set
                {
                    if (PageCount == value) return;
                    EnsureChildControls();                lbl_PageCount.Text = value.ToString();                int pageindex = PageIndex;
                    ddl_Page.Items.Clear();
                    for (int i = 0; i < value; i++)
                    {
                        ddl_Page.Items.Add(new ListItem((i + 1).ToString(), i.ToString()));
                    }
                    PageIndex = pageindex;
                    
                }
            }
            public virtual bool NotShowCount
            {
                private get
                {
                    return _notShowCount;
                }
                set
                {
                    _notShowCount = value;
                }
            }
            public virtual string FistImageUrl
            {
                get
                {
                    return _fistImageUrl;
                }
                set
                {
                    _fistImageUrl = value;
                }
            }
            public virtual string PrevImageUrl
            {
                private get
                {
                    return _prevImageUrl;
                }
                set
                {
                    _prevImageUrl = value;
                }
            }
            public virtual string NextImageUrl
            {
                private get
                {
                    return _nextImageUrl;
                }
                set
                {
                    _nextImageUrl = value;
                }
            }
            public virtual string LastImageUrl
            {
                private get
                {
                    return _lastImageUrl;
                }
                set
                {
                    _lastImageUrl = value;
                }
            }
            public virtual string DdlPageCSS
            {
                private get
                {
                    return _ddlPageCSS;
                }
                set
                {
                    _ddlPageCSS = value;
                }
            }
            public event EventHandler PageChanged
            {
                add
                {
                    Events.AddHandler(EventPageChange, value);
                }
                remove
                {
                    Events.RemoveHandler(EventPageChange, value);
                }        }
            protected void OnPageChanged(EventArgs e)
            {
                EventHandler handler = (EventHandler)Events[EventPageChange];
                if (handler != null)
                {
                    handler(this, e);
                }
            }
            #endregion        protected override void RenderContents(HtmlTextWriter writer)
            {
                AddAttributesToRender(writer);
                writer.Write(@"<div width=""100%"" align=""right"">");
                writer.RenderBeginTag(HtmlTextWriterTag.Table);
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);
                writer.RenderBeginTag(HtmlTextWriterTag.Td);
                imgbtn_Frist.RenderControl(writer);
                writer.Write("&nbsp;");
                imgbtn_Prev.RenderControl(writer);
                writer.Write("&nbsp;");
                writer.RenderEndTag();
                writer.RenderBeginTag(HtmlTextWriterTag.Td);
                ddl_Page.RenderControl(writer);
                writer.RenderEndTag();
                writer.RenderBeginTag(HtmlTextWriterTag.Td);
                writer.Write("&nbsp;");
                imgbtn_Next.RenderControl(writer);
                writer.Write("&nbsp;"); 
                imgbtn_Last.RenderControl(writer);
                if (!_notShowCount)
                {
                    writer.RenderEndTag();
                    writer.RenderBeginTag(HtmlTextWriterTag.Td);
                    writer.Write("&nbsp;页数:" + PageCount);
                    writer.Write("&nbsp;总数:" + RecordCount);
                }
                writer.RenderEndTag();
                writer.RenderEndTag();
                writer.RenderEndTag();
                writer.Write(@"</div>");
            }
            protected override void CreateChildControls()
            {
                this.Controls.Clear();
                imgbtn_Frist = new ImageButton();
                imgbtn_Frist.ID = "imgbtn_Frist";
                imgbtn_Frist.ImageUrl = FistImageUrl;
                imgbtn_Frist.Click += new ImageClickEventHandler(imgbtn_Frist_Click);            imgbtn_Prev = new ImageButton();
                imgbtn_Prev.ID = "imgbtn_Pre";
                imgbtn_Prev.ImageUrl = PrevImageUrl;
                imgbtn_Prev.Click += new ImageClickEventHandler(imgbtn_Prev_Click);            ddl_Page = new DropDownList();
                ddl_Page.ID = "ddl_Page";
                ddl_Page.CssClass = _ddlPageCSS;
                ddl_Page.AutoPostBack = true;
                ddl_Page.SelectedIndexChanged += new EventHandler(ddl_Page_SelectedIndexChanged);            imgbtn_Next = new ImageButton();
                imgbtn_Next.ID = "imgbtn_Next";
                imgbtn_Next.ImageUrl =NextImageUrl;
                imgbtn_Next.Click += new ImageClickEventHandler(imgbtn_Next_Click);            imgbtn_Last = new ImageButton();
                imgbtn_Last.ID = "imgbtn_Last";
                imgbtn_Last.ImageUrl = LastImageUrl;
                imgbtn_Last.Click += new ImageClickEventHandler(imgbtn_Last_Click);            lbl_PageCount = new Label();
                lbl_RecodeCount = new Label();
                            this.Controls.Add(imgbtn_Frist);
                this.Controls.Add(imgbtn_Prev);
                this.Controls.Add(ddl_Page);
                this.Controls.Add(imgbtn_Next);
                this.Controls.Add(imgbtn_Last);
                this.Controls.Add(lbl_PageCount);
                this.Controls.Add(lbl_RecodeCount);
               
                base.CreateChildControls();
            }
            private void imgbtn_Frist_Click(object sender, EventArgs e) //第一页
            {
                if (PageIndex <= 0) return;
                PageIndex =0;
                OnPageChanged(EventArgs.Empty);
            }
            private void imgbtn_Prev_Click(object sender, EventArgs e) //上一页
            {
                if (PageIndex <= 0) return;
                PageIndex = PageIndex -1;
                OnPageChanged(EventArgs.Empty);
            }
            private void ddl_Page_SelectedIndexChanged(object sender, EventArgs e) //跳到N页
            {
                PageIndex = Convert.ToInt32(ddl_Page.SelectedValue);
                OnPageChanged(EventArgs.Empty);
            }
            private void imgbtn_Next_Click(object sender, EventArgs e) 
            {
                if (PageIndex >= PageCount - 1) return;
                PageIndex = PageIndex+1;
                OnPageChanged(EventArgs.Empty);
            }
            private void imgbtn_Last_Click(object sender, EventArgs e) 
            {
                if (PageIndex >= PageCount - 1) return;
                PageIndex = PageCount - 1;
                OnPageChanged(EventArgs.Empty);
            }
        }
    aspnetpager