Question

Je crée un navigateur de fichiers dans ASP.Net, mais je suis confronté à un problème qui, je pense, est lié à la transmission d'événements sur des contrôles dynamiques. Je vais expliquer ce que mon code fait ici:

Lorsque ma page se charge (OnLoad), j'appelle une méthode (createStuff ()) qui crée un certain nombre de boutons de liaison (représentant les dossiers d'un répertoire actuel) qui sont liés à un événement modifiant le répertoire actuel en celui associé. avec le bouton link.

Etant donné qu'un événement linkbutton-click-event est déclenché après l'appel de OnLoad (et que le répertoire courant est donc modifié pour la première fois après le chargement), les boutons de liaison ne sont pas mis à jour pour refléter le nouveau répertoire actuel (ils sont créés avant le changement du répertoire actuel. par l'événement de clic). Par conséquent, j'appelle également createStuff () dans OnLoadComplete, ce qui entraîne la mise à jour des boutons de liaison et reflète les dossiers du nouveau répertoire en cours.

TOUJOURS (et c’est mon problème), il semble que le câblage de l’événement (Cliquez sur + = new EventHandler (changeDirectory)) que je fais dans createStuff () ne fonctionne pas vraiment lorsque la méthode est appelée dans OnLoadComplete (OnLoadComplete est appelé après un événement linkbutton-click a été déclenché). Le résultat est que, bien que la propriété text des boutons de lien reflète les dossiers du nouveau répertoire, cliquer sur les boutons de lien ne déclenche pas l'événement.

Comment puis-je résoudre ce problème? J'ai essayé de recâbler les événements sur les LinkButtons dans OnLoad mais le même résultat.

Merci d'avance

Simon, Danemark

Était-ce utile?

La solution

Définissez la propriété ID du LinkButton de manière cohérente.

Deux causes courantes de ce problème sont (1) les gestionnaires d’événements manquants et (2) les propriétés d’ID manquantes. Puisque vous êtes sûr que votre gestionnaire d’événements est attaché pendant OnLoad , les propriétés d’ID manquantes sont probablement le coupable.

Lorsqu'un utilisateur clique sur votre LinkButton sur le client, un PostBack est envoyé au serveur qui nomme le LinkButton par son ID. Si vous ne vous assurez pas que votre contrôle a le même identifiant entre PostBacks, votre gestionnaire d'événements ne sera peut-être pas levé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top