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没有必要写的?

  • 相关阅读:
    追踪神秘的成都Uber:月入2万元是现实还是传说
    打造自己博客(wordpress)的wap手机版本
    今天刚申请成为Uber司机 已经接了5单了....大家有什么想问的吗?
    UBER司机奖励政策
    原生应用native、Web应用、混合应用hybrid:3者的优缺点解析
    “基数排序”之数组中缺失的数字
    html5 新增语义标签
    如何判断Javascript对象是否存在
    HTML 5 <details> 标签
    html5 notifications通知
  • 原文地址:https://www.cnblogs.com/shyleoking/p/650709.html
Copyright © 2011-2022 走看看