2009-10-06 20 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>

相关问题