Je génère des éléments HTML à la volée en utilisant javascript. Ces contrôles sont situés dans un panneau de mise à jour du navigateur.Obtention de contrôles HTML générés dynamiquement lors de l'utilisation de UpdatePanel
Pour une raison quelconque, je ne parviens pas à accéder à ces éléments dans le tableau Page.Form [].
Y a-t-il une raison à cela?
Ma solution actuelle crée un tableau de chaînes, transforme cela en chaîne JSON, stocke cela dans une variable cachée qui est renvoyée au serveur car le champ caché a été défini auparavant dans le code côté serveur.
Markup
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div id="dynamicInputsGoHere" class="hiddenContent" runat="server"></div>
</ContentTemplate>
Javascript pour créer des entrées
for (i = currentSize; i < numberInputsToCreate; i++) {
html += "<input type='text' id='inputNum" + i.toString() + "' />";
}
$('#dynamicInputsGoHere').append(html);
J'essaie d'accéder aux entrées dynamiques qui ont été générés par javascript lorsque les messages du panneau de mise à jour en arrière .
Êtes-vous en train de dire que le champ caché dans lequel vous stockez des données est créé dynamiquement à partir du client lui-même ...? – deostroll
Il y a très probablement une raison à cela, oui. Cependant, il est peu probable que nous travaillions sans aucun code à regarder. Le panneau est-il à l'intérieur de l'étiquette de formulaire? Comment générez-vous les éléments de formulaire (et définissez les noms, peut être problématique dans IE), etc ... – bobince
Vous vous compliquez la vie. Le but du contrôle UpdatePanel est en premier lieu de pouvoir utiliser le code côté serveur pour alimenter une interface utilisateur "basée sur Ajax". Vraiment, vous pouvez soit utiliser le UpdatePanel, soit lancer l'Ajax vous-même. Ce n'est pas conçu/conçu pour être utilisé dans les deux sens. –