2017-01-18 11 views
0

aspx.CSページにhtmlという名前の文字列をC#言語でビルドします。html文字列内の参照可能な列C#

DataTableと仮定します。明らかに

これは動作しません:

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

どちらこれを行います:

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

どちらがこれを行わない

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

完全なコードは、(実際にはこれを維持しようとしていました質問は簡単ですが、これは理解に役立つかもしれません):

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

ページのロード(dtActiveは、データとデータテーブルである)

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

ASPXページ:

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

任意の助けを感謝し、もちろん、あなたが私をより具体的にする必要がある場合、またはされますこれが重複している場合は、リクエスト/リンクに下記のようにコメントしてください。あなたが反復するが、間違った参照を使用している

、使用:あなたは

+0

これはHTMLではなくC#の文字列です。 –

+0

あなたは何をしようとしていますか? –

+0

@JameCoderBot文字列をページにどのように印刷していますか、試した3つの文字列の結果はどうなりますか? –

答えて

0

あなたの編集に基づいてデータテーブル

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

編集

の記録を反復処理する必要がありますありがとうrow["FirstName"]の代わりにdt["FirstName"]

+0

OPが実際に望んでいることは確かですか? –

+1

まあ、DataTableの行ではなくDataTableから直接 "FirstName"という名前のフィールドを取得しようとしているようです。 – r1verside

+0

これが機能する可能性があります。だから私はこのdt ["+ firstname +"]のように置く? – Ophiucus

関連する問題