Dynamique des contrôles créés à l'intérieur de UpdatePanel?
Je veux créer un contrôle qui permet à l'utilisateur de concevoir son propre site web de la structure. J'ai imaginé qu'à l'intérieur de UpdatePanel
est des contrôle(s) avec TextBox
( pour le nom de la page) et Button
'ajouter ci-dessous". Il ressemblerait à:
| "Questions" |
| [ add below ] |
| "Tags" |
| [ add below ] |
| "Badges" |
| [ add below ] |
maintenant, lorsque l'utilisateur clique sur le bouton "Tags" élément doit apparaître une nouvelle, entre les "Tags" et les "Badges", avec le nom modifiable, de sorte que l'utilisateur peut nommer "Utilisateurs" par exemple. Il doit être fait sans publication complète ( pour éviter de page clignote).
Maintenant, c'est mon problème: je ne peut pas charger les commandes (enfin pas tous) dans onInit, car ils n'existent pas, mais je dois assister à la leur, cliquez sur événement donc je doit attacher de l'écouteur d'événement ce qui doit être fait lors de l'Init de la phase. Comment puis-je obtenir fonctionnalités décrites?
J'ai joué un peu pour trop de temps et je suis confus. Je vous serais reconnaissant pour les conseils.
Vous devez vous connecter pour publier un commentaire.
C'est une situation délicate parce que vous avez affaire avec des contrôles dynamiques, vous devez remplir sur la page init afin de persister viewstate, aussi des événements pour les contrôles ajoutés à l'intérieur d'un panneau de mise à jour au cours de clics sur le bouton ne semble pas être enregistré jusqu'à la prochaine publication, de sorte que la normale, cliquez sur le bouton événement ne se déclenche une fois que, chaque fois que vous cliquez sur un contrôle nouvellement ajouté. Il y a peut être une autre façon de contourner ce que je l'ai fait. Si quelqu'un sait, je voudrais savoir.
Ma solution est de garder une liste de ce que vous avez ajoutés dynamiquement, et de le stocker dans une variable de session (à cause de l'état d'affichage n'est pas chargée lors de la page init). Puis sur la page init charge tous les contrôles que vous avez précédemment ajouté. Puis de gérer l'événement click pendant le chargement de la page avec quelques code personnalisé à la place ou à la normal, cliquez sur l'événement.
J'ai créé une page d'exemple pour aider à tester cette.
Voici le code de la page aspx (valeur par défaut.aspx):
Et voici le code pour le code-behind de la page (par défaut.aspx.cs):
Laissez-moi savoir si ce code vous aide à tous. J'ai essayé d'ajouter des commentaires avec ma compréhension de ce qui se passe et comment il fonctionne.
Cette façon de travailler pour moi
Bouton d'appel
Avant d'appeler la méthode claire le contrôle sinon il va charger deux fois
Si vous voulez dynamique gestionnaires d'événements pour vos commandes, vous pouvez essayer ce -
D'envisager un contrôle de bouton,
Vous pouvez avoir votre code dans l'événement click du bouton,