对datagrid自带的数字分页的功能补充

datagrid有个创建项时触发的事件ItemCreated,可以在这个事件中添加自定义代码来完成对datagrid自带的数字分页的功能补充,添加前页后页第一页最后一页以及跳转等相应功能,代码如下:
private void Dg_ResultList_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
  {
   if(e.Item.ItemType == ListItemType.Pager)
   {
    TableCell pager = (TableCell) e.Item.Controls[0];
    pager.HorizontalAlign = HorizontalAlign.Center;
    
    // 首页链接
    LinkButton LB_FirstPage = new LinkButton();
    LB_FirstPage.Text = "首页  " ;
    LB_FirstPage.CommandName = "Page";
    LB_FirstPage.CommandArgument = "1";
    pager.Controls.AddAt(0,LB_FirstPage);

    Label L_split = new  Label();
    L_split.Text = " ";
    pager.Controls.AddAt(1,L_split);

    for (int i = 0; i < pager.Controls.Count; i += 2)
    {  
     Object o = pager.Controls[i];
     if (o is LinkButton) 
     {
      // 非当前页码
      LinkButton linkButton = (LinkButton) o; 
      linkButton.Text = linkButton.Text ;  //"[" +  + "]"
     }
     else if( o is Label)
     { 
      // 当前页码
      Label label = (Label) o; 
      label.Text = "[<b>" + label.Text + "</b>]";  //<b>  </b>
     }
    }

    // pager.Controls.Add(L_split);

    // 末页链接
    LinkButton LB_LastPage = new LinkButton();
    LB_LastPage.Text = "&nbsp;&nbsp;末页&nbsp;&nbsp;" ;
    LB_LastPage.CommandName = "Page";
    LB_LastPage.CommandArgument = ((DataGrid)sender).PageCount.ToString();
    pager.Controls.Add(LB_LastPage);
 


    // 添加页码信息
    Label lb = new Label();// LinkButton();
    lb.Text = "第"+(Dg_ResultList.CurrentPageIndex+1).ToString()+"/"+
     Dg_ResultList.PageCount.ToString()+"页&nbsp;&nbsp;" ;     
    pager.Controls.Add(lb);

    //   结果数功能难以实现,似乎此事件发生时还不能取到结果总数?
    //    lb = new Label();// LinkButton();
    //    lb.Text = "共查到篇&nbsp;&nbsp;" ;
    //    lb.ID = "lbl_RecCount";     
    //    pager.Controls.Add(lb);

    // 添加跳转信息
    lb = new Label();
    lb.Text = "到";     
    pager.Controls.Add(lb);

    // 目的页
    TextBox tb = new TextBox();
    tb.ID = "txt_JunmToPageIndex";
    tb.Width = 30;
    pager.Controls.Add(tb);
    
    lb = new Label();
    lb.Text = "页" ;     
    pager.Controls.Add(lb);

    Button Btn_Go = new Button();
    Btn_Go.Text = "GO";
    Btn_Go.Click +=new EventHandler(Btn_Go_Click);

    pager.Controls.Add(Btn_Go);
   }
  }

private void Btn_Go_Click(object sender, EventArgs e)
  {
   int index;

// ASP.Net找不到ItemCreate是创建的txt_JunmToPageIndex文本框,需要用下面方式实现
   try
   {
    index = Convert.ToInt32( Request.Form["Dg_ResultList:_ctl1:txt_JunmToPageIndex"] );
   }
   catch
   {
    return;    
   }

   if( index<=0 || index > Dg_ResultList.PageCount)
    return;

   // index = ( index > Dg_ResultList.PageCount)?Dg_ResultList.PageCount:index;

   Dg_ResultList.CurrentPageIndex = index -1 ;

   Bind();  

  }
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值