Remarquez, j'utilise des pages maîtres, mais puis-je localiser un div dans la page et y jeter du HTML? Merci.
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>
Utilisation asp:Panel
pour ça. Cela se traduit par un div.
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)).
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.
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.