zoukankan      html  css  js  c++  java
  • [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);
       }  
      }
  • 相关阅读:
    第12-13周总结
    排球比赛计分规则
    我与计算机
    排球比赛计分规则-三层架构
    怎样成为一个高手 观后感
    最后一周冲刺
    本周psp(观众页面)
    本周psp(观众页面)
    本周工作计量
    本周总结
  • 原文地址:https://www.cnblogs.com/JimZhang/p/226554.html
Copyright © 2011-2022 走看看