web-dev-qa-db-fra.com

Ajouter dynamiquement du HTML à la page ASP.NET

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.

16
Maxim Gershkovich

Ç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);
29
Dan

Aspx:

<div id="DIV1" runat="server"></div>

Code derrière:

DIV1.InnerHtml = "some text";
11
mrbengi

Il existe plusieurs façons de le faire, dont l'utilisation dépend vraiment de votre scénario et de vos préférences.

  • Contrôles utilisateur Web: peuvent être ajoutés dynamiquement et vous bénéficiez de la prise en charge complète des éditeurs de Visual Studio.
  • Littéraux XML (VB.NET uniquement): moyen très pratique de rassembler rapidement du code HTML dans le code.
  • Modèles: ajoutez un document HTML brut à votre solution et incluez-le en tant que ressource. Ensuite, vous obtiendrez le support de l'éditeur et vous n'encombrerez pas votre code avec la source HTML.
6
Jakob Gade

Une autre option

//.aspx
<asp:Literal ID="myText" runat="server"></asp:Literal>


//.aspx.cs
protected Literal myText;
myText.Text = "Hello, World!";
0
Michael