Puis-je append dynamicment du HTML dans une balise div à partir de l’événement C # on load?

Remarquez que j’utilise des pages maîtres, mais puis-je localiser un div dans la page et y insérer du code HTML? Merci.

Vous pouvez append un div avec runat = “server” à la page:

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

 myDiv.InnerHtml = "your html here"; 

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

  

Utilisez asp:Panel pour cela. Il se traduit par une div.

N’oubliez pas d’utiliser

 myDiv.InnerHtml = "something"; 

remplacera tous les éléments HTML dans myDIV. vous devez append du texte pour éviter cela. Dans ce cas, cela peut aider

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

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

Vous pouvez référencer des contrôles dans la page maître de la manière suivante:

 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 HTML"; } } } 

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

Vous souhaitez placer le code dans le code de page maître derrière celui qui insère le code HTML dans le contenu d’une page utilisant cette page maître?

Je ne rechercherais pas le contrôle via FindControl car il s’agit d’une solution fragile qui pourrait facilement être brisée si le nom du contrôle était modifié.

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 pourrait transmettre le code HTML en tant que EventArg.