IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

ASP.NET AJAX : problème avec onmouseover sur des boutons dans un gridview


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 36
    Points
    36
    Par défaut ASP.NET AJAX : problème avec onmouseover sur des boutons dans un gridview
    Bonsoir,

    Le titre n'est peut etre pas très explicite mais je m'explique.
    J'ai une page web qui contient un gridview avec 2 buttonfield de type image. Un pour la modification et un autre pour la suppression. Sur le databound, je leur ajoute un onmouseover et onmouseout pour avoir un effet sur le survol du bouton.
    Lorsque l'on clique sur le bouton supprimer dans le gridview, une popup modale du framework ajax s'affiche (son contenu provient d'un usercontrol, un message et 2 boutons oui - non). Lors du clic sur le bouton oui j'appelle ma procédure stockée et je rebind le gridview. Mais le soucis n'est pas la.
    Le onmouseover et onmouseout ne fonctionne plus. 'document.getElementById('id')' est null. Ca doit être un problème de postback je pense mais je ne suis pas sûr.
    Si je clique sur l'onglet qui contient mon gridview, l'effet de survol fonctionne a nouveau.

    Si quelqu'un a une idée, merci

    mekongboy

  2. #2
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 253
    Points
    28 253
    Par défaut
    document.getElementById('id')'
    pour ce problème, tu es sûr que l'ID est bon? du genre monControle.ClientID?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 36
    Points
    36
    Par défaut
    Voici le code pour mettre en place les évènements (version simple, en fait ce bout de code est dans une fonction js qui prend en argument le clientID et le nom de mes images) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monbouton.Attributes.Add("onmouseover","document.getElementById('" + monbouton.ClientID + "').src='...'");
    Est-ce que le clientID de mes boutons peut changer sur chaque databound? Mais ca ne devrait rien changer vu que a chaque fois il m'ajoute bien les events.
    Ca doit venir d'un problème de refresh d'un updatepanel. Vu que mon bouton de validation de suppression est dans un user control et pas sur ma page, je peux pas l'enregistrer en trigger c'est peut etre ca?

  4. #4
    Expert éminent
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Points : 6 775
    Points
    6 775
    Billets dans le blog
    4
    Par défaut
    Tu utilises une master page? Si oui, ton identifiant n'est pas vraiment le même puisque la master page rajoute son propre identifiant devant celui que tu crées.

    fais tu un identifiant manuel ou laisses tu ton code le générer dynamiquement?

  5. #5
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 253
    Points
    28 253
    Par défaut
    Citation Envoyé par Lyche Voir le message
    Tu utilises une master page? Si oui, ton identifiant n'est pas vraiment le même puisque la master page rajoute son propre identifiant devant celui que tu crées.

    fais tu un identifiant manuel ou laisses tu ton code le générer dynamiquement?
    ce problème n'existe pas. à partir du moment où il utilise moncontrole.ClientID, il aura tjs le bon identifiant. ca vient d'autre chose

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Points : 230
    Points
    230
    Par défaut
    Les balises scripts ne sont pas geree par les updatepanels ! Si ta balise script est a l'interieur d'un updatepanel il ne se passera rien.
    Si ce n'est pas le cas, il est probable que ton script ne marche pas non plus. Il doit falloir le relancer par l'intermediaire de la methode RegisterStartupScript de l'objet ScriptManager.

    Ce serait interessant de voir un peu plus en detail ton javacscript.

  7. #7
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    400
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 400
    Points : 444
    Points
    444
    Par défaut
    Je ne sois pas sûr que le problème vienne de là, si c'est le cas, tu peux peut être ne pas utiliser document.getElementById, mais directement "this", car tu es sur le bouton, je pense que ça peut marcher, normalement un truc du genre

    en javascript je crois que ça fonctionne.

  8. #8
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    400
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 400
    Points : 444
    Points
    444
    Par défaut
    Les balises scripts ne sont pas geree par les updatepanels ! Si ta balise script est a l'interieur d'un updatepanel il ne se passera rien.
    Si ce n'est pas le cas, il est probable que ton script ne marche pas non plus. Il doit falloir le relancer par l'intermediaire de la methode RegisterStartupScript de l'objet ScriptManager.
    Il me semble que ce n'est pas une balise script, mais un attribut html ajoutée à l'événement

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Points : 230
    Points
    230
    Par défaut
    Il a dit qu'il avait une fonction js, non ?

    Bref nous faut du code

Discussions similaires

  1. [ASP.NET][C#] Problème avec Fileupload.Havefile
    Par patricklinden dans le forum ASP.NET
    Réponses: 12
    Dernier message: 21/07/2009, 08h42
  2. Réponses: 0
    Dernier message: 06/02/2009, 20h20
  3. [ASP.NET][AJAX] Problème UpdatePanel /Click
    Par loic_86 dans le forum ASP.NET
    Réponses: 11
    Dernier message: 24/09/2007, 11h11
  4. [ASP.NET 2] Problème avec un formulaire popup modal
    Par dinbougre dans le forum ASP.NET
    Réponses: 1
    Dernier message: 19/09/2007, 11h32
  5. [AJAX] Traitement des balises html
    Par Mysti¢ dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 13/08/2006, 22h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo