Table是怎样炼成的:HtmlTable

彭博 发布于 2012/03/09 15:21
阅读 88
收藏 0
昨天我们做的Table具有了Print方法,可以简单的打印数据。
现在我需要一个Table,可以把Table中的数据以Html的Table的格式输出。
而我只需要重写Print方法
 1 public   class  HtmlTable : Table
 2      {
 3        public HtmlTable(string reportName, ColumnCollection cols)
 4            : base(reportName, cols)
 5        {
 6
 7        }

 8
 9        public override void Print()
10        {
11            System.Text.StringBuilder sb = new StringBuilder();
12
13            //输出Table的开始标记
14            sb.Append("<table>/n");
15            //输出表头
16            sb.Append("<thead>/n<tr>/n");
17            foreach (Column col in this.Columns)
18            {
19                sb.AppendFormat("<th>{0}</th>/n", col.ColumnName);
20            }

21            sb.AppendLine("</tr>/n</thead>");
22
23
24            //输出数据行
25            foreach (Row row in this.Rows)
26            {
27                sb.AppendLine("<tr>");
28                foreach (object obj in row.ItemArray)
29                {
30                    sb.AppendFormat("<td>{0}</td>/n", obj);
31                    //System.Console.Write("{0}/t", obj);
32                }

33                sb.AppendLine("</tr>");
34                System.Console.WriteLine();
35            }

36
37            //输出Table的结束标记
38            sb.Append("</table>/n");
39
40            System.Console.WriteLine(sb.ToString());
41
42        }

43
44    }

现在我将SaleReport改继承HtmlTable(参见Table是怎样炼成的:SaleReport Table的继承者 ),其他都不要改动。
然后我们运行该SaleReport

 1             SaleReport report  =   new  SaleReport( " 销售台帐 " );
 2             report.AddRecord( " Alex " " Phone " 2600 );
 3             report.AddRecord( " Alex " " PC " 4560 );
 4             report.AddRecord( " Alex " " Table " 234 );
 5             report.AddRecord( " Sidney " " Phone " 2100 );
 6             report.AddRecord( " Sidney " " TV " 4500 );
 7             report.AddRecord( " Tom " " oven " 300 );
 8             report.AddRecord( " Leo " " oven " 240 );
 9
10             report.Print();

运行的结果是

 1 < table >
 2 < thead >
 3 < tr >
 4 < th > 序号 </ th >
 5 < th > 姓名 </ th >
 6 < th > 商品名称 </ th >
 7 < th > 日期 </ th >
 8 < th > 数量 </ th >
 9 </ tr >
10 </ thead >
11 < tr >
12 < td > 1 </ td >
13 < td > Alex </ td >
14 < td > Phone </ td >
15 < td > 2007-2-14 20:39:31 </ td >
16 < td > 2600 </ td >
17 </ tr >
18 < tr >
19 < td > 2 </ td >
20 < td > Alex </ td >
21 < td > PC </ td >
22 < td > 2007-2-14 20:39:31 </ td >
23 < td > 4560 </ td >
24 </ tr >
25 < tr >
26 < td > 3 </ td >
27 < td > Alex </ td >
28 < td > Table </ td >
29 < td > 2007-2-14 20:39:31 </ td >
30 < td > 234 </ td >
31 </ tr >
32 < tr >
33 < td > 4 </ td >
34 < td > Sidney </ td >
35 < td > Phone </ td >
36 < td > 2007-2-14 20:39:31 </ td >
37 < td > 2100 </ td >
38 </ tr >
39 < tr >
40 < td > 5 </ td >
41 < td > Sidney </ td >
42 < td > TV </ td >
43 < td > 2007-2-14 20:39:31 </ td >
44 < td > 4500 </ td >
45 </ tr >
46 < tr >
47 < td > 6 </ td >
48 < td > Tom </ td >
49 < td > oven </ td >
50 < td > 2007-2-14 20:39:31 </ td >
51 < td > 300 </ td >
52 </ tr >
53 < tr >
54 < td > 7 </ td >
55 < td > Leo </ td >
56 < td > oven </ td >
57 < td > 2007-2-14 20:39:31 </ td >
58 < td > 240 </ td >
59 </ tr >
60 </ table >

现在我们得到了一个可以在HTML上产生表格的结果了。
谁说这个Table没有必要写的?

 

 


原文链接:http://blog.csdn.net/shyleoking/article/details/4779634
加载中
返回顶部
顶部