web-dev-qa-db-fra.com

Puis-je ajouter dynamiquement du HTML dans une balise div à partir de C # lors d'un événement de chargement?

Remarquez, j'utilise des pages maîtres, mais puis-je localiser un div dans la page et y jeter du HTML? Merci.

45
Sara Chipps

Vous pouvez ajouter un div avec runat = "server" à la page:

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

puis définissez sa propriété InnerHtml à partir du code-behind:

myDiv.InnerHtml = "your html here";

Si vous souhaitez modifier le contenu du DIV côté client, vous pouvez utiliser un code javascript similaire à celui-ci:

<script type="text/javascript">
    Sys.Application.add_load(MyLoad);
    function MyLoad(sender) {
        $get('<%= div.ClientID %>').innerHTML += " - text added on client";
    }
</script>
81
M4N

Utilisation asp:Panel pour ça. Cela se traduit par un div.

15
Otávio Décio

N'oubliez pas d'utiliser

myDiv.InnerHtml = "something";

remplacera tous les éléments HTML dans myDIV. vous devez ajouter du texte pour éviter cela. Dans la mesure où cela peut aider

myDiv.InnerHtml = "something" + myDiv.InnerText;

tout contrôle html dans myDiv mais pas ASP contrôles html (car ils ne sont pas encore rendus)).

5
Vivek Raj

Vous pouvez référencer les contrôles à l'intérieur de la page maître de cette façon:

void Page_Load()
{
    ContentPlaceHolder cph;
    Literal lit;

    cph = (ContentPlaceHolder)Master.FindControl("ContentPlaceHolder1");

    if (cph != null) {
        lit = (Literal) cph.FindControl("Literal1");
        if (lit != null) {
            lit.Text = "Some <b>HTML</b>";
        }
    }

}

Dans cet exemple, vous devez placer un contrôle Literal dans votre ContentPlaceholder.

3
splattne

Vous voulez mettre du code dans le code de la page maître derrière qui insère du HTML dans le contenu d'une page qui utilise cette page maître?

Je ne rechercherais pas le contrôle via FindControl car c'est une solution fragile qui pourrait facilement être cassée si le nom du contrôle changeait.

Votre meilleur pari est de déclarer un événement dans la page maître que toute page enfant pourrait gérer. L'événement peut passer le code HTML en tant qu'Arg EventG.

1
Jim Petkus