2009-10-06 2 views
7

Kann ich eine dynamisch erstellte C# -Tabelle in eine HTML-Zeichenfolge konvertieren?Kann ich eine dynamisch erstellte C# -Tabelle in eine HTML-Zeichenfolge konvertieren?

Ich meine so;

Table t = new Table(); 
TableRow tr = new TableRow(); 
TableCell td = new TableCell(); 
td.Text = "Some text... Istanbul"; 
tr.Cells.Add(td); 
t.Rows.Add(tr); 
t.ToString(); 
Response.Write(t.ToString()); 

Ich möchte auf der Seite sehen;

<table> <tr> <td> Some text... 
Istanbul </td> <tr> </table> 
+0

Sie sollten Ihre Frage ein wenig mehr erklären ... –

+7

Was ist ein C#? Tabelle? – Benjol

+0

Was möchten Sie tun? Wann brauchen Sie diesen Tisch? – Arthur

Antwort

21
using (StringWriter sw = new StringWriter()) 
{ 
    Table t = new Table(); 
    TableRow tr = new TableRow(); 
    TableCell td = new TableCell {Text = "Some text... Istanbul"}; 

    tr.Cells.Add(td); 
    t.Rows.Add(tr); 

    t.RenderControl(new HtmlTextWriter(sw)); 

    string html = sw.ToString(); 
} 

Ergebnis:

<table border="0"><tr><td>Some text... Istanbul</td></tr></table>

0

Ja. Es muss irgendwann zu einer Zeichenkette werden, damit es für den Browser gerendert wird - eine Möglichkeit, dies zu tun, besteht darin, die Tabelle daraus zu extrahieren.

2

Sie sollten Ihre Frage aktualisieren, um etwas informativer zu sein. Allerdings werde ich annehmen, dass Sie einen Datagrid verwenden:

StringBuilder stringBuilder = new StringBuilder(); 
StringWriter stringWriter = new StringWriter(stringBuilder); 
HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter); 
DataGrid1.RenderControl(htmlWriter); 
string dataGridHTML = Server.HtmlEncode(stringBuilder.ToString()); 
1

Nur einen Panel auf der Seite hat, und die Tabelle zum Panel hinzuzufügen.

Also, in Ihrer aspx-Datei:

<asp:Panel id="MyPanel" runat="server" /> 

und im Code hinter:

MyPanel.Controls.Add(t) // wo 't' ist Ihr Table-Objekt

, dass die Tabelle in Ihrem Panel platziert , die die Tabelle als Html zur Seite rendert, in einem netten <div>

Verwandte Themen