[Asp.Net+C#]Datagrid使用技巧一(怎样灵活控制表头)

今天在工作做到处数据为Excel时,在用到DataGrid时,要求表头为两行 ,以前没用过,把我难到了,又不想用用客户端的Table,觉得可读性太差,研究了一会,终于找到了解决方法,先发上来,由于时间关系,就不整理了。呵呵。

private void Datagrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
  {
   ListItemType itemtype=e.Item.ItemType; //获得当前创建行的类别
   int j=0;
   if(itemtype==ListItemType.Header)//当执行到表头是执行
   {
    DataGridItem trnew=new DataGridItem(0,0,ListItemType.Header);
    for(int i=0;i<Datagrid1.Columns.Count;i++){
     string strValue=Datagrid1.Columns[i].HeaderText;
     if(strValue.Substring(0,2).Equals("A卷"))
     {
      string[] strArr=strValue.Split(',');
      trnew.Cells.Add(new TableCell());
      trnew.Cells[j].Text=strArr[1];
      trnew.Cells[j].ColumnSpan=3;
      trnew.Cells[j].Width=Unit.Pixel(180);
      trnew.Cells[j].Height=Unit.Pixel(22);
      e.Item.Cells[i].Text=strArr[0];
      j=j+1;
     }
     else{
      if(Datagrid1.Columns[i].HeaderText!="B卷"&&Datagrid1.Columns[i].HeaderText!="综合")
      {
       trnew.Cells.Add(new TableCell());
       trnew.Cells[j].Text=e.Item.Cells[i].Text;
       trnew.Cells[j].RowSpan=2;
       j=j+1;
      }
     }
    }
    j=0;
    for(int i=0;i<Datagrid1.Columns.Count;i++)
    {
     if(Datagrid1.Columns[i].HeaderText!="B卷"&&Datagrid1.Columns[i].HeaderText!="综合"&&Datagrid1.Columns[i].HeaderText.Substring(0,2)!="A卷")
     {
      e.Item.Cells.RemoveAt(j);
     }
     else{
      j=j+1;
     }
    }
    Datagrid1.Controls[0].Controls.AddAt(0,trnew);
   }  
  }

转载于:https://www.cnblogs.com/JimZhang/archive/2005/08/30/226554.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值