2016-04-08 2 views
2

Есть ли способ построить заголовок таблицы HTML из списка, разделенного запятой?Создать заголовок таблицы 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); 
} 

Кто-нибудь имеет представление, как вывести имена свойств из этого запятую массива, и поместить их в новую строку, что я могу добавить к столу и использовать его как заголовок?

Возможно, есть лучший способ вытащить струны с именами с отражением. Может быть, я должен хранить их в списке строк или что-то в этом роде. Любое предложение о том, как справиться с этим, как более чистое, может быть более чем приветствуется.

ответ

1

Возможно, вы можете использовать пример от MSDN.

Обновите свой фрагмент кода так:

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); 
+0

решена ли это проблему? –

Смежные вопросы