2016-04-08 29 views
2

Virgülle ayrılmış listeden HTML tablo üstbilgisi oluşturmanın bir yolu var mı?Virgülle ayrılmış listeden HTML tablosu üstbilgisi oluştur

Bir sınıftan özellik adı almak için yansıma kullanıyorum. Bundan önce, hangi listeyi hariç tutmak istediğimi tanımlarım.

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()); 

tablo içeriği için ben HtmTableRow kullanıyordum:

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); 
} 

Herkes nasıl virgülle ayrılmış diziden özelliklerin adı çekin ve ben tabloya ekleyebiliriz, yeni bir satıra koymak fikri vardır ve başlık olarak kullanmak?

Dizeleri yansımalarla isimleri çekmenin daha iyi bir yolu vardır. Belki de onları bir dizi dizide veya böyle bir şeyde saklamalıyım. Bunu nasıl daha temiz bir şekilde ele alacağınıza dair herhangi bir öneri, hoş karşılanmayacaktır.

cevap

1

Örneğini MSDN'dan kullanabilirsiniz. Böyle

güncelleme kod parçacığı:

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

o sorununuzu çözdü mu? –

İlgili konular