昨天我们做的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
}
public
class
HtmlTable : Table2
{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();
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
>
<
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没有必要写的?
本文转自shyleoking 51CTO博客,原文链接:http://blog.51cto.com/shyleoking/806268