以编程方式创建的表不会出现在WebBrowser控件中

时间:2009-11-19 17:01:41

标签: c# dom webbrowser-control

我正在WebBrowser控件中动态创建HTML。大多数元素似乎都正确显示,但表格除外。

我的代码是:

var doc = webBrowser1.Document;
var body = webBrowser1.Document.Body;
body.AppendChild(webBrowser1.Document.CreateElement("hr"));

var div = doc.CreateElement("DIV");
var table = doc.CreateElement("TABLE");
var row1 = doc.CreateElement("TR");

var cell1 = doc.CreateElement("TD");
cell1.InnerText = "Cell 1";
row1.AppendChild(cell1);

var cell2 = doc.CreateElement("TD");
cell2.InnerText = "Cell 2";
row1.AppendChild(cell2);

table.AppendChild(row1);
div.AppendChild(table);
body.AppendChild(div);

body.AppendChild(webBrowser1.Document.CreateElement("hr"));

HTML标记在正文的OuterHTML属性中可见,但浏览器中显示的所有内容都是两个水平规则。

如果我更换

div.AppendChild(table);

div.InnerHtml = table.OuterHtml

然后一切都按预期显示。

2 个答案:

答案 0 :(得分:0)

使用THEAD,TBODY和TFOOT元素

答案 1 :(得分:0)

要使表格内容可见,其标签必须位于< TBODY>

var tbody = doc.CreateElement("TBODY");

...

tbody.AppendChild(row1);
table.AppendChild(tbody);
div.AppendChild(table);