2010-02-08 8 views
0

Comment afficher un document html dans un contrôle ASP, de préférence une table asp: table, par programmation à partir du script côté serveur? J'ouvre actuellement le document html avec un Streamrader, le lit dans une chaîne, puis le place dans la table, mais tout le balisage html apparaît. J'ai essayé d'utiliser HtmlEncode et HtmlDecode, mais je n'arrive pas à le faire fonctionner. Donc, j'ai la mécanique d'accès au contrôle de travail, juste besoin de rendre le document html comme il apparaîtrait dans un navigateur.Comment afficher un document html dans un contrôle ASP

+0

Est-ce pas Asp.NET? – Phil

Répondre

1

Vous devez définir la « .InnerHtml » propriété de un certain contrôle au lieu de « .InnerText » ou peut-être quelque chose comme (HtmlCell?):

LiteralControl foo = new LiteralControl("<p>html from stream here</p>") 
table.Rows[0].Cells[0].Controls.Add(foo); 

Il serait utile que vous fournir un contexte (un petit exemple de code) de ce que vous essayez exactement de faire lorsque vous mettez le code HTML "dans la table".

+0

Résolu: J'ai supprimé la ligne avec HtmlEncode –

+0

OK, l'ensemble StringWriter-business était redondant: si vous l'avez déjà en tant que chaîne de GetArticle(), vous pouvez le mettre directement à InnerHtml. – Ope

0

Voici mon code actuel:

//articleComments in code snippet is the raw html file contents 

protected void DisplayArticle(string articleID) 
    {  
     string articleContents = GetArticle(articleID); 
     System.IO.StringWriter sw=new System.IO.StringWriter(); 
     Server.HtmlEncode(articleContents, sw); 
     Server.HtmlDecode(articleContents, sw); 
     HtmlTableRow row = new HtmlTableRow(); 
     HtmlTableCell cell = new HtmlTableCell(); 
     this.tablearticle.Border = 0; 
     this.tablearticle.Rows.Add(row); 
     row.Attributes.Add("bgcolor", "lightgrey"); 
     row.Attributes.Add("align", "center"); 
     cell.InnerHtml = sw.ToString(); 
     row.Cells.Add(cell); 
    } 
Questions connexes