Comment ajouter par programmation des trucs à contentPlaceHolder?
J'ai une page principale et que toutes mes pages sont en hériter.
Pour le formatage, j'ai pensé à placer le contenu qui diffère d'une page à l'autre dans un ContentPlaceHolder.
Maintenant, comment puis-je insérer le tout dans que? Depuis que j'ai l'intention de remplir la ContentPlaceHolder avec des trucs à partir d'une base de données je suppose que je vais devoir le faire par programmation.
-
Comment puis-je ajouter des contrôles à ContentPlace Titulaire?
J'ai vérifié d'autres réponses, mais je ne peux pas y accéder par son ID. -
Dois-je utiliser plusieurs ContentPlaceHolders depuis le début? Disons que je veux mettre des films. Devrait-il y avoir un seul avec toutes les images et de descriptions et de classements, de minerai de un ContentPlaceHolder pour chaque chose?
Je suis ouvert à d'autres solutions, comme je n'ai aucune expérience avec ASP.
Vous devez vous connecter pour publier un commentaire.
Vieille question... mais je viens de tomber sur ce problème et c'était le #1 post qui a cessé de venir sur Google, de sorte que la figure, je voudrais ajouter ma réponse puisque les autres n'a pas fonctionné dans mon cas.
Voici comment je l'ai fait quand régulier
<asp:Content
ne fonctionne pas (bien que dans une utilisation normale, la réponse @JayC est comment vous le faites):MasterPage a ce
ContentPlaceHolder
:Avait dynamiquement ajouter un peu de JavaScript à partir d'un Contrôle de l'Utilisateur. Essayez d'utiliser le
ContentPlaceHolder
directement donne cette erreur:Je voulais donc ajouter le script dans le code-behind. Ici, c'est le Chargement de la Page pour la
.ascx
fichier:Mise à JOUR: il s'avère que j'ai eu à l'utiliser dans plus d'endroits que j'attendais, et finit par les utiliser d'une façon beaucoup plus souple /lisible. Dans le contrôle de l'utilisateur lui-même, je vient de terminer le javascript et tout ce qui avait besoin d'être déplacé avec un régulier
div
.Et puis le code derrière trouverez div, puis le déplacer dans la
ContentPlaceHolder
.J'ai effectivement mis ce code dans une coutume de contrôle de l'utilisateur, et je viens d'avoir mon utilisateur régulier des contrôles d'hériter de la coutume de contrôle de l'utilisateur, donc une fois que j'enveloppe le javascript/etc avec un
<div id="_jsDiv" runat="server">
, la coutume de contrôle de l'utilisateur prend en charge le reste et je n'ai pas à faire quoi que ce soit dans le code-behind de l'utilisateur contrôle.Ce qui se passe normalement est
ContentPlaceHolder
sContent
zones pour vous.Si vous souhaitez ajouter dynamiquement des contrôles pour le maître (ou toutes les) page, vous pouvez ajouter des contrôles à tout contrôle existant. Si elle ne devrait pas être enveloppé d'une quelconque façon, il suffit d'ajouter une
Placeholder
(c'est un asp.net de contrôle).Content
région? Vous pouvez certainement ajouter des choses pour que:Label lbl =new Label(); lbl.Text="something"; placeHolder.Controls.Add(lbl);
Page_Init
méthode,var control = Page.LoadControl("~/path/to/TheNeededUserControl.ascx");
puis mettre en place le contrôle et l'ajouter à l'espace réservé duControls
collection), mais qui pourrait obtenir un peu de harry fonction de la façon dont votre projet est mis en place. Il pourrait être encore plus facile d'avoir des pages distinctes, chacune fait ce qu'elle doit faire, et puis UrRewrite à la même Url de base dans IIS7 (si vous utilisez cette). Vous avez beaucoup d'options.J'ai aimé cette
Et c'est allé dans le code behind:
Si l'espace de noms pour le contenu de la Page et de la page principale n'est pas le même, alors le contenu de la page de contrôle n'est pas accessible dans le Code-behind de la page de contenu.
Vérifiez également votre concepteur de fichiers. si le contrôle ne figurant pas dans le concepteur de fichier, puis supprimez le fichier et de le recréer (projet->convertir application web)