2017-01-18 5 views
0

Erstellen einer Zeichenfolge mit dem Namen html in der aspx.CS-Seite mit C# Sprache.Referenz Datentabelle Spalte in HTML-Zeichenfolge C#

Angenommen, DataTable dt.

Das ist offensichtlich nicht funktioniert:

string html = "dt["FirstName"]"; 

Genauso wenig wie diese:

string html = "dt[\"FirstName\"]"; 

Weder tut dies:

string html = ""+dt+"[\"FirstName\"]"; 

Voll-Code (war wirklich nur diese zu halten versuchen, Frage einfach, aber das könnte helfen, zu verstehen):

public static string ConvertDataTableToHtmlTable(DataTable dt) 
{ 
    string html = "<h3>Locations:</h3><table class=\"table table-condensed\" style=\"border-collapse:collapse;\">"; 
    //add header row 
    html += "<thead><tr><th>&nbsp;</th><th>City</th><th>Contact</th><th>Stations</th></tr></thead><tbody>"; 

     int i = 1; 
     //add rows 
     foreach (DataRow row in dt.Rows) 
     { 
     //visible row 
     html += "<tr data-toggle=\"collapse\" data-target=\"#demo"+i+"\" class=\"accordion-toggle\">"; 
     html += "<td><button class=\"btn btn-default btn-xs\" onclick=\"return false;\"><span class=\"glyphicon glyphicon-option-horizontal\"></span></button></td>"; 
     html += "<td>"+dt[\"CompanyCity\"]+</td>"; 
     html += "<td>"+dt[\"FirstName\"]+</td>"; 
     html += "<td> 11 </td></tr>"; 
     //collapsable row 
      html += "<tr><td colspan = \"12\" class=\"hiddenRow\"><div class=\"accordian-body collapse\" id=\"demo"+i+"\">"; 
      html += "<table class=\"table table-striped\"><thead>"; 
      html += "<tr><th>License Key</th><th>Start</th><th>Expire</th><th>Product</th><th>Version</th><th>Level</th><th>Model</th><th>User</th><th>Email</th></tr></thead><tbody>"; 
      html += "<tr><td>Instalcode </td><td> start </td><td> expire </td><td> product </td><td> version </td><td> level </td><td> model </td><td> user </td><td> email </td></tr>"; 
      html += "</tbody></table></div></td></tr>"; 
     i++; 
     } 
    html += "</tbody></table>"; 
    return html; 
} 

Seite Last (dtActive ist die Datentabelle mit Daten)

protected void Page_Load(object sender, EventArgs e) 
{ 
locationsTable.InnerHtml = ConvertDataTableToHtmlTable(dtActive); 
} 

ASPX Seite:

<div id="locationsTable" runat="server"></div> 

Jede Hilfe ist willkommen und natürlich, wenn Sie mich brauchen um genauer zu sein, oder Wenn es sich um ein Duplikat handelt, geben Sie bitte unten Ihre Anfrage/Ihren Link an. Danke

+0

Dies ist C# Zeichenfolge, nicht HTML. –

+0

Was versuchst du zu tun? –

+0

@JameCoderBot Wie druckst du den String auf die Seite und was ist das Ergebnis dieser drei Strings, die du ausprobiert hast? –

Antwort

0

Sie müssen durch die Datensätze der Datentabelle

foreach (DataRow dr in dt) 
{ 
    String firstname = dr["FirstName"] != null ? dr["FirstName"].ToString() : string.Empty; 
} 

bearbeiten

Basierend auf Ihre Bearbeitung durchlaufen:

Sie Iterieren aber die falsche Referenz verwendet wird, die Verwendung row["FirstName"] statt dt["FirstName"]

+0

Bist du sicher, dass das was das OP eigentlich will? –

+1

Nun, er scheint zu versuchen, ein Feld namens "FirstName" direkt von einer DataTable statt einer Reihe davon zu bekommen. – r1verside

+0

Dies könnte funktionieren. also stelle ich es so dt ["+ vorname +"]? – Ophiucus