我可以将动态创建的c#表转换为html字符串吗?

时间:2009-10-06 07:37:17

标签: 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>

4 个答案:

答案 0 :(得分: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>

答案 1 :(得分:3)

您应该更新您的问题以获得更多信息。但是,我假设您正在使用DataGrid:

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

答案 2 :(得分:1)

只需在页面上放置一个Panel,然后将该表添加到Panel。

所以,在你的aspx文件中:

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

并在您的代码中:

MyPanel.Controls.Add(t) //其中't'是您的Table对象

将表放在面板中,将表格作为Html呈现给页面,这是一个不错的<div>

答案 3 :(得分:0)

是。它必须在某个时候变成一个字符串才能呈现给浏览器 - 一种方法就是采用它并从中提取表格。