2009-10-06 24 views
7

我可以將動態創建的C#錶轉換爲html字符串嗎?我可以將動態創建的C#錶轉換爲html字符串嗎?

我的意思是這樣;

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

我想在頁面中看到;

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

您應該多解釋一下您的問題... – 2009-10-06 07:39:22

+7

什麼是C#表? – Benjol 2009-10-06 07:45:25

+0

你想做什麼?你什麼時候需要那張桌子? – Arthur 2009-10-06 08:00:19

回答

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

結果:

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

0

是的。它必須成爲一個字符串在某些時候被呈現給瀏覽器 - 做到這一點的一種方法是取出並從中提取表格。

2

你應該更新你的問題,以提供更多的信息。不過,我會假設你正在使用一個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

只需在頁面上的面板上,將表添加到面板。

所以,在你的aspx文件:

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

並在後面的代碼:

MyPanel.Controls.Add(t) //其中 'T' 是你的表對象

這會將表中的面板,它將表格呈現爲Html到頁面,效果不錯<div>

相關問題