.net中生成二维的表格

在优快云上, 找到思归大哥的代码, 终于达到了要求. 给自己做个记号.

代码如下:

 

   void    Page_Load( object    o,   EventArgs   e)  
  
{  
   DataTable   dt   
=   GetData();   //assume   GetData   returns   the   DataTable  
   
   
//probably   better   to   use   Hashtable   for   depts   and   months   too,   but   to   keep   the   order,   let's   use   ArrayList  
   
   
string   sSeparator   =   ":";  
   ArrayList   alDept   
=   new   ArrayList();   //种类
   ArrayList   alMonth   =   new   ArrayList();   //代码

   Hashtable   ht   
=   new   Hashtable();  
   
   
foreach   (DataRow   dr   in   dt.Rows)  
   
{  
    
string   sDept   =   dr["c"].ToString();  
    
string   sMonth2   =   dr["p"].ToString();
    
//将产地代码转换为产地名称
    string   sMonth   =   GetData2(sMonth2);
    
if   (!alDept.Contains(sDept))  
     alDept.Add(sDept);  
   
    
if   (!alMonth.Contains(sMonth))  
     alMonth.Add(sMonth);  
   
    ht[sDept
+   sSeparator   +   sMonth]   =   dr["a"];  
   
   }
   

   
   TableRow   tr   
=   new   TableRow();  
   TableCell   tc   
=   new   TableCell();  

   
//tc.Text   =   " ";  
   
//tr.Cells.Add(tc);  

   
foreach   (string   sDept   in   alDept)  
   
{  
    
int i=0;   //用于计算某一种类的数量
    foreach   (string   sMonth   in   alMonth)  
    
{  
     
if(ht[sDept+   sSeparator   +   sMonth]==null)
     
{
      i
=i+0;
     }

     
else
     
{
      i 
= i + int.Parse(ht[sDept+   sSeparator   +   sMonth].ToString()); 
     }

    }
  
    tc   
=   new   TableCell();  
    tc.Text
=   sDept+"("+i+")";  
    tr.Cells.Add(tc); 
   }
  

   
/*foreach   (string   sDept   in   alDept)  
   {  
    tc   =   new   TableCell();  
    tc.Text=   sDept;  
    tr.Cells.Add(tc);  
   }   
*/

   Table1.Rows.Add(tr);  
   
   
   
foreach   (string   sMonth   in   alMonth)  
   
{  
    tr   
=   new   TableRow();  
    
/*tc   =   new   TableCell();  
    tc.Text   =   sMonth;  
    tr.Cells.Add(tc);
*/

  
    
foreach   (string   sDept   in   alDept)  
    
{  
     tc   
=   new   TableCell();  
     
if(ht[sDept+   sSeparator   +   sMonth]==null)
     
{
      tc.Text
=sMonth+"(0)";
     }

     
else
     
{
      tc.Text   
=  sMonth+"("+ ht[sDept+   sSeparator   +   sMonth].ToString()+")"
     }

     tr.Cells.Add(tc);  
    }
  
    Table1.Rows.Add(tr);  
   }
  
    
  }


  
Web 窗体设计器生成的代码

  
public  DataTable GetData()
  
{
   StatisticsB stat
=new StatisticsB();
   DataSet dataset
=stat.byStone();
   
return dataset.Tables["stat"];
  }

  
// 取得名称列表
   public   string  GetData2( string  statid)
  
{
   StatisticsB stat
=new StatisticsB();
   
return stat.changeToName(statid);
  }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值