2009-10-06 11 views
7

Posso convertire una tabella C# creata in modo dinamico in una stringa html?Posso convertire una tabella C# creata in modo dinamico in una stringa html?

Intendo così;

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

Voglio vedere nella pagina;

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

Dovresti spiegare un po 'di più la tua domanda ... –

+7

Che cos'è un C# tavolo? – Benjol

+0

Cosa vuoi fare? Quando hai bisogno di quel tavolo? – Arthur

risposta

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

risultato:

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

0

Sì. Deve diventare una stringa ad un certo punto affinché venga reso disponibile al browser: un modo per farlo è prenderlo ed estrarre il tavolo da esso.

2

È necessario aggiornare la domanda per essere un po 'più informativo. Tuttavia, devo supporre che si sta utilizzando un DataGrid:

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

Basta avere un pannello sulla pagina, e aggiungere la tabella al Pannello.

Quindi, nel file aspx:

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

e nel codice dietro:

MyPanel.Controls.Add(t) // dove 't' è il tuo oggetto Table

che pone la tabella nel pannello di , che rende la tabella come HTML alla pagina, in una bella <div>

Problemi correlati