【问题标题】:Generate HTML table header from comma separated list从逗号分隔列表生成 HTML 表头
【发布时间】:2016-07-29 09:14:05
【问题描述】:

有没有办法从逗号分隔列表构建 HTML 表头?

我正在使用反射从一个类中获取属性名称。在此之前,我正在定义要从该列表中排除哪些属性。

 var toExclude = new HashSet<string>
     {
         "ID",
         "SubSystemID",
         "System",
         "Component",
         "ReferenceNumber",
         "IsValid"
     };

var propsIndividuals = typeof(Person).GetProperties(BindingFlags.Public | BindingFlags.Instance).
                       Where(property => !toExclude.Contains(property.Name));

var header = string.Join(", ", propsIndividuals.Select(p => p.Name.ToString()).ToArray());

对于我使用 HtmTableRow 的表格内容:

foreach (var invalidIndividual in mailMessageObject.InvalidIndividuals)
{
        rowIndividuals = new HtmlTableRow();
        rowIndividuals.Cells.Add(new HtmlTableCell {InnerText = invalidIndividual.FirstName});
        rowIndividuals.Cells.Add(new HtmlTableCell {InnerText = invalidIndividual.Surname});
        rowIndividuals.Cells.Add(new HtmlTableCell {InnerText = invalidIndividual.MiddleName});
        rowIndividuals.Cells.Add(new HtmlTableCell {InnerText = invalidIndividual.DateOfBirth});
        rowIndividuals.Cells.Add(new HtmlTableCell {InnerText = invalidIndividual.Gender});
        rowIndividuals.Cells.Add(new HtmlTableCell {InnerText = invalidIndividual.Address1});
        rowIndividuals.Cells.Add(new HtmlTableCell {InnerText = invalidIndividual.Address2});
        rowIndividuals.Cells.Add(new HtmlTableCell {InnerText = invalidIndividual.Address3});
        rowIndividuals.Cells.Add(new HtmlTableCell {InnerText = invalidIndividual.Address4});
        rowIndividuals.Cells.Add(new HtmlTableCell {InnerText = invalidIndividual.City});
        rowIndividuals.Cells.Add(new HtmlTableCell {InnerText = invalidIndividual.PostalCode});
        rowIndividuals.Cells.Add(new HtmlTableCell {InnerText = invalidIndividual.Country});
        rowIndividuals.Cells.Add(new HtmlTableCell {InnerText = invalidIndividual.NationalID});
        tableIndividuals.Rows.Add(rowIndividuals);
}

任何人都知道如何从逗号分隔的数组中提取属性名称,并将它们放到一个新行中,我可以将其附加到表中并将其用作标题?

可能有更好的方法来提取带有反射名称的字符串。也许我应该将它们存储在字符串列表或类似的东西中。 任何有关如何尽可能清洁地处理此问题的建议都将受到欢迎。

【问题讨论】:

    标签: c# csv html-table


    【解决方案1】:

    您可以使用MSDN 中的示例。

    像这样更新你的代码 sn-p :

    var toExclude = new HashSet<string>
    {
        "ID",
        "SubSystemID",
        "System",
        "Component",
        "ReferenceNumber",
        "IsValid"
    };
    
    var propsIndividuals = typeof(Person).GetProperties(BindingFlags.Public | BindingFlags.Instance).
                           Where(property => !toExclude.Contains(property.Name));
    
    var rowHeader = new new HtmlTableRow("th")
    
    foreach (var property in propsIndividuals)
    {
        rowHeader.Cells.Add(new HtmlTableCell { InnerText = property.Name });
    }
    
    tableIndividuals.Rows.Add(rowHeader);
    

    【讨论】:

      猜你喜欢
      • 2018-05-20
      • 1970-01-01
      • 2012-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多