zoukankan      html  css  js  c++  java
  • Table是怎样炼成的:HtmlTable

    昨天我们做的Table具有了Print方法,可以简单的打印数据。
    现在我需要一个Table,可以把Table中的数据以Html的Table的格式输出。
    而我只需要重写Print方法
     1public 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没有必要写的?

  • 相关阅读:
    短信平台接口调用方法参考
    C#部分类与部分方法
    Oracle表字段类型更改的一个经验
    ueditor的上传文件漏洞(c#)
    判断一个文件是否是指定后缀名的文件
    利用FluorineFx的ByteArray上传图片
    FluorineFx 播放FLV 时堆棧溢出解决 FluorineFx NetStream.play 并发时,无法全部连接成功的解决办法
    Flex数据交互之Remoting[转]
    fluorinefx使用手册
    SharedObject使用:在FluorineFx.net与Flex中使用共享对象维护在线用户列表实例【转】
  • 原文地址:https://www.cnblogs.com/shyleoking/p/650709.html
Copyright © 2011-2022 走看看