Si j'ai un espace réservé qui ressemble à ceci:Existe-t-il un moyen d'empêcher l'ID du titulaire de contenu d'affecter les ID enfants dans ASP.NET?
<asp:contentplaceholder ID="Body" runat="server"></asp:contentplaceholder>
Et à l'intérieur de celui-ci sont d'autres éléments qui sont runat="server"
avec des propriétés d'identité, puis-je obtenir quelque chose comme ceci:
<span id="Body_T966DB943018">
<div id="Body_T966DB943007_ctl00_ctl00_main"></div>
</span>
est-il un moyen de mettre en place ma contentplaceholder
telle que la sortie apparaît comme ceci:
<span id="T966DB943018">
<div id="T966DB943007_ctl00_ctl00_main"></div>
</span>
(remarquez l'absence du « Body_ » dans tous les ID générés)
Si vous voulez savoir pourquoi je demande ...
J'utilise Sitefinity. Par défaut, vous pouvez configurer des modèles dans une interface graphique principale. C'est ainsi que le site a été construit à l'origine.
La dernière structure HTML est la façon dont le CMS a généré des modèles sur la page. La construction initiale de CSS et JS utilisait ces ID générés. Maintenant, nous avons ajouté un fichier modèle maître, et nous devons mettre un contentplaceholder
par défaut pour le contenu de Sitefinity.
Je dois trouver un moyen d'avoir cet espace réservé par défaut (ci-dessus avec ID="Body"
pour ne pas affecter les ID de ses enfants.
Vous pouvez définir la propriété '' ClientIDMode' à Static' pour chaque contrôle enfant (en supposant que vous n » t avoir un doublon). [MSDN] (https://msdn.microsoft.com/fr-fr/library/system.web.ui.control.clientidmode%28v=vs.110%29.aspx) –
@AdrianoRepetti - Je regardais juste cette propriété .. Malheureusement, il existe des centaines de contrôles enfants, et ils sont tous générés automatiquement par le CMS, donc ce n'est pas une option. – tmsimont
Je ne sais pas si j'ai une bonne compréhension de la situation ici, mais est-ce quelque chose où vous pouvez réellement écrire le code HTML par programme (c'est-à-dire: le vieux chemin ASP classique)? – Steve