【问题标题】:C# HTML table not in correct output formatC# HTML 表的输出格式不正确
【发布时间】:2020-07-28 01:20:45
【问题描述】:

我正在将HTML 表形成为字符串格式,以解析回另一个函数以显示在电子邮件中。

但是,我觉得我错过了很多东西,因为我无法让表格出现在正确的输出中。

下面是我的代码sn-p:

var table = new HtmlTable();
var mailMessage = new StringBuilder();
string html;

HtmlTableRow row;
HtmlTableCell cell;

row = new HtmlTableRow();

row.Cells.Add(new HtmlTableCell { InnerText = "First Name" });
row.Cells.Add(new HtmlTableCell { InnerText = "Last Name" });
row.Cells.Add(new HtmlTableCell { InnerText = "Age" });

table.Rows.Add(row); //seems to not adding a new row at this statement

row.Cells.Add(new HtmlTableCell { InnerText = "Jane" });
row.Cells.Add(new HtmlTableCell { InnerText = "Doe" });
row.Cells.Add(new HtmlTableCell { InnerText = "29" });

using (var sw = new StringWriter()){
    table.RenderControl(new HtmlTextWriter(sw));
    html = sw.ToString();
}

mailMessage.AppendFormat(html);
Console.WriteLine(mailMessage.ToString());

输出:

<table>
        <tr>
                <td>First Name</td>
                <td>Last Name</td>
                <td>Age</td>
                <td>Jane</td>
                <td>Doe</td>
                <td>29</td>
        </tr>
</table>

【问题讨论】:

    标签: c# html html-table


    【解决方案1】:

    在你的代码之后试试这个:

    table.Rows.Add(row);
    
    row = new HtmlTableRow();
    

    设置数据 td 后,再次使用

    将第二行添加到表中
    table.Rows.Add(row);
    

    添加后需要重新初始化行变量。

    所以你的代码现在如下所示:

    row = new HtmlTableRow();
    
    row.Cells.Add(new HtmlTableCell { InnerText = "First Name" });
    row.Cells.Add(new HtmlTableCell { InnerText = "Last Name" });
    row.Cells.Add(new HtmlTableCell { InnerText = "Age" });
    
    table.Rows.Add(row); //Add First Row.
    row = new HtmlTableRow(); // Reinitialize Row
    
    row.Cells.Add(new HtmlTableCell { InnerText = "Jane" });
    row.Cells.Add(new HtmlTableCell { InnerText = "Doe" });
    row.Cells.Add(new HtmlTableCell { InnerText = "29" });
    
    table.Rows.Add(row); // Add Second Row
    

    或者更好地使用另一个变量来消除歧义。 比如headerRow,firstRow左右。

    【讨论】:

    • @gymcode 您可以随时将其标记为答案。只是说..
    • 抱歉,正在等待 sof 的最短时间限制。
    猜你喜欢
    • 2020-10-07
    • 1970-01-01
    • 2013-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-19
    • 2017-06-27
    相关资源
    最近更新 更多