Quelqu'un pourrait-il indiquer la méthode "correcte" pour ajouter dynamiquement du contenu HTML à une page ASP.NET?
Je connais la méthode déclarative suivante.
//Declaration
<%= MyMethodCall() %>
//And in the code behind.
protected String MyMethodCall()
{
return "Test Value";
}
Existe-t-il une meilleure ou une meilleure pratique?
EDIT: Je construis une galerie de photos Galleriffic dynamiquement en fonction des images situées dans un dossier spécifique.
Ça dépend de ce que tu veux faire.
Pour les contrôles/texte, j'utilise normalement un LiteralControl
et définit la propriété Text
comme HTML que je veux ajouter, puis ce contrôle peut être ajouté n'importe où sur la page que vous souhaitez qu'il apparaisse
La référence LiteralControl est ici
ok vu que vous le voulez pour Galleriffic, je suppose que cela pseudo-apparaîtrait comme tel ...
LiteralControl imageGallery = new LiteralControl();
string divStart = @"<div id='thumbs'><ul class='thumbs noscript'>";
imageGallery.Text += divStart;
foreach ([image in images])
{
string imageHTML = @"<li><a class='thumb' name='optionalCustomIdentifier' ref='path/to/slide' title='your image title'>
<img src='path/to/thumbnail' alt='your image title again for graceful degradation' /></a>
<div class='caption'>[caption]<div></li>";
imageGallery.Text += imageHTML;
}
string divEnd = @"</ul></div>";
imageGallery.Text += divEnd;
this.[divOnPage].Controls.Add(imageGallery);
Aspx:
<div id="DIV1" runat="server"></div>
Code derrière:
DIV1.InnerHtml = "some text";
Il existe plusieurs façons de le faire, dont l'utilisation dépend vraiment de votre scénario et de vos préférences.
Une autre option
//.aspx
<asp:Literal ID="myText" runat="server"></asp:Literal>
//.aspx.cs
protected Literal myText;
myText.Text = "Hello, World!";