您的位置:首页 > 移动开发 > Objective-C

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

2005-06-22 16:50 369 查看
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 = "  末页  " ;
    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()+"页  " ;     
    pager.Controls.Add(lb);
    //   结果数功能难以实现,似乎此事件发生时还不能取到结果总数?
    //    lb = new Label();// LinkButton();
    //    lb.Text = "共查到篇  " ;
    //    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();  
  }
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息