2009-04-30 7 views

Répondre

2

L'ID client du contrôle est dérivé de l'ID de tous les contrôles contenant l'interface INamingContainer. Donc, assurez-vous que TOUS les contrôles de la hiérarchie ont un ID fixe. Par exemple, si vous avez un contrôle Button à l'intérieur d'un répéteur, l'ID du bouton et le répéteur sont concaténés pour créer l'ID du client pour le bouton. Donc, le répéteur et le bouton doivent avoir le même ID à travers les publications.

Vous pouvez comparer le code HTML de la première requête avec le code HTML de la deuxième requête pour déterminer rapidement si c'est le problème.

+0

merci, cela a résolu un problème avec lequel j'ai lutté! –

1

Attribuez un ID à votre contrôle créé dynamiquement, sinon aucun événement ne sera déclenché.

3

Cela ressemble au branchement sur l'événement OnClick de bouton ne se produit pas sur chaque chargement de page qui est requis.

Pouvez-vous garantir que le raccordement est effectué lorsque vous ajoutez le contrôle et après un retour à la page? Je place toujours mes hooks d'événement dans les gestionnaires d'événements Page_Init ou Page_Load et en dehors de toute vérification Postback. Essayez de mettre un point d'arrêt sur le hook du Handler et de voir si le breakpoint est "hit" deux fois.

Un événement pour le raccordement d'un bouton ressemblerait à:

protected void Page_Load(object sender, EventArgs e) 
{ 
    btnSearch.Click += new EventHandler(btnSearch_Click); // breakpoint on this line 
} 
0

Vous attendez le téléchargement de la page complète avant d'appuyer sur le bouton?

Les événements sont des fonctions javascript cachées par ASP.Net dans la page, qui peut-être pas présent au moment de votre clic.

Questions connexes