用户操作
[即时聊天] [发私信] [加为好友]
DimeID:dr592112441
3730次访问,排名2万外好友0人,关注者1
*.* 空白
dr592112441的文章
原创 25 篇
翻译 0 篇
转载 0 篇
评论 0 篇
最近评论
文章分类
    收藏
      相册
      存档
      软件项目交易
      订阅我的博客
      XML聚合  FeedSky
      订阅到鲜果
      订阅到Google
      订阅到抓虾
      订阅到BlogLines
      订阅到Yahoo
      订阅到GouGou
      订阅到飞鸽
      订阅到Rojo
      订阅到newsgator
      订阅到netvibes

      原创 GridView之个性分页收藏

       | 旧一篇: ASP.NET2.0中将文件上传到数据库

      实现思路和上文的Excel和Word导出是一样的,就是在GridView中添加行,首先声明以下控件,用于显示页次:第几页,共多少页,多少记录,首页,上一页,下一页,尾页
        用于分页的控件
         Label lblCurrentPage;
         Label lblPageCount;
         Label lblRowsCount;
         LinkButton btnFirst;
         LinkButton btnPrev;
         LinkButton btnNext;
         LinkButton btnLast;在GridView的OnInit方法中,初始化这些控件
        在控件的Oninit方法初始化分页控件
         protected override void OnInit(EventArgs e)
         {
         this.EnableViewState = true;
        
         lblCurrentPage = new Label();
         lblCurrentPage.ForeColor = ColorTranslator.FromHtml("#e78a29");
         lblCurrentPage.Text = "1";
        
         lblPageCount = new Label();
         lblPageCount.Text = "1";
        
        
         lblRowsCount = new Label();
         lblRowsCount.ForeColor = ColorTranslator.FromHtml("#e78a29");
        
         btnFirst = new LinkButton();
         btnFirst.Text = "首页";
         btnFirst.Command += new CommandEventHandler(NavigateToPage);
         btnFirst.CommandName = "Pager";
         btnFirst.CommandArgument = "First";
        
         btnPrev = new LinkButton();
         btnPrev.Text = "上一页";
         btnPrev.Command += new CommandEventHandler(NavigateToPage);
         btnPrev.CommandName = "Pager";
         btnPrev.CommandArgument = "Prev";
        
         btnNext = new LinkButton();
         btnNext.Text = "下一页";
         btnNext.Command += new CommandEventHandler(NavigateToPage);
         btnNext.CommandName = "Pager";
         btnNext.CommandArgument = "Next";
        
         btnLast = new LinkButton();
         btnLast.Text = "尾页";
         btnLast.Command += new CommandEventHandler(NavigateToPage);
         btnLast.CommandName = "Pager";
         btnLast.CommandArgument = "Last";
        
         base.OnInit(e);
         }
        
        然后是关键部分的代码,就是将这些控件如何添加到GridView中,通过在创建子控件的方式,如下:
        在创建子控件的方法中添加分页控件
         protected override int CreateChildControls(System.Collections.IEnumerable dataSource, bool dataBinding)
         {
         int res = base.CreateChildControls(dataSource, dataBinding);
         if (ShowToolBar)
         {
         try
         {
         GridViewRow row = new GridViewRow(0, 0, DataControlRowType.Pager, DataControlRowState.Normal);
         TableCell c = new TableCell();
         c.Width = Unit.Percentage(100);
         c.ColumnSpan = this.Columns.Count;
         row.Cells.Add(c);
         TableCell cell1 = new TableCell();
         Table table = new Table();
         TableRow r = new TableRow();
         table.Rows.Add(r);
         table.Width = Unit.Percentage(100);
         c.Controls.Add(table);
         r.Cells.Add(cell1);
         Literal l1 = new Literal();
         l1.Text = "页次:";
         cell1.Controls.Add(l1);
         cell1.Wrap = false;
         cell1.Controls.Add(lblCurrentPage);
         l1 = new Literal();
         l1.Text = "页/";
         cell1.Controls.Add(l1);
         cell1.Controls.Add(lblPageCount);
         l1 = new Literal();
         l1.Text = "页,共";
         cell1.Controls.Add(l1);
         cell1.Controls.Add(lblRowsCount);
         l1 = new Literal();
         l1.Text = "条记录";
         cell1.HorizontalAlign = HorizontalAlign.Left;
         cell1.Controls.Add(l1);
         TableCell cell2 = new TableCell();
         cell2.HorizontalAlign = HorizontalAlign.Right;
         cell2.Wrap = false;
        
        
         l1 = new Literal();
         l1.Text = " [";
         cell2.Controls.Add(l1);
         cell2.Controls.Add(btnFirst);
         l1 = new Literal();
         l1.Text = "] ";
         cell2.Controls.Add(l1);
        
         l1 = new Literal();
         l1.Text = " [";
         cell2.Controls.Add(l1);
         cell2.Controls.Add(btnPrev);
         l1 = new Literal();
         l1.Text = "] ";
         cell2.Controls.Add(l1);
        
         l1 = new Literal();
         l1.Text = " [";
         cell2.Controls.Add(l1);
         cell2.Controls.Add(btnNext);
         l1 = new Literal();
         l1.Text = "] ";
         cell2.Controls.Add(l1);
        
         l1 = new Literal();
         l1.Text = " [";
         cell2.Controls.Add(l1);
         cell2.Controls.Add(btnLast);
         l1 = new Literal();
         l1.Text = "] ";
         cell2.Controls.Add(l1);
         r.Cells.Add(cell2);
         this.Controls[0].Controls.AddAt(0, row);
         }
         catch
         {
         }
         }
         return res;
         }下面就是处理分页的事件,类似于RowCommand
         public void NavigateToPage(object sender, CommandEventArgs e)
         {
         btnFirst.Enabled = true;
         btnPrev.Enabled = true;
         btnNext.Enabled = true;
         btnLast.Enabled = true;
         switch (e.CommandArgument.ToString())
         {
         case "Prev":
         if (this.PageIndex > 0)
         {
         this.PageIndex -= 1;
        
         }
         break;
         case "Next":
         if (this.PageIndex < (this.PageCount - 1))
         {
         this.PageIndex += 1;
        
         }
         break;
         case "First":
         this.PageIndex = 0;
         break;
         case "Last":
         this.PageIndex = this.PageCount - 1;
         break;
         }
         if (this.PageIndex == 0)
         {
         btnFirst.Enabled = false;
         btnPrev.Enabled = false;
         if (this.PageCount == 1)
         {
         btnLast.Enabled = false;
         btnNext.Enabled = false;
         }
         }
         else if (this.PageIndex == this.PageCount - 1)
         {
         btnLast.Enabled = false;
         btnNext.Enabled = false;
         }
         OnBind();
         } 

      发表于 @ 2007年12月06日 18:09:00|评论(loading...)|编辑

       | 旧一篇: ASP.NET2.0中将文件上传到数据库

      评论:没有评论。

      发表评论  


      当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
      Csdn Blog version 3.1a
      Copyright © dr592112441