0
Je crée dynamiquement du code HTML dans un contrôle WebBrowser. La plupart des éléments semblent apparaître correctement, à l'exception d'une table.Les tables créées par programme n'apparaissent pas dans le contrôle WebBrowser
Mon code est:
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"));
Les balises HTML sont visibles dans la propriété outerHTML du corps, mais tout ce qui apparaît dans le navigateur sont les deux règles horizontales.
Si je remplace
div.AppendChild(table);
avec
div.InnerHtml = table.OuterHtml
alors tout apparaît comme prévu.
Avez-vous comparé la source pour voir la différence? – joerage
Merci joerage - Il me manquait
à l'intérieur de la table - je n'avais pas réalisé qu'il y avait une différence entre le HTML et le DOM comme ça. –Répondre
Pour connaître le contenu de la table pour être visible ses balises doivent être à l'intérieur d'un < tbody>
Source
2010-06-08 10:44:33 hultqvist
Utilisez les éléments THEAD, TBODY et TFOOT
Source
2010-03-15 22:53:29 Answer
Questions connexes