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 :

evenemetnt déclenché lors d'un clic sur un hyperlink


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2008
    Messages : 233
    Par défaut evenemetnt déclenché lors d'un clic sur un hyperlink
    salut
    quel est l'evenement qui est déclenché lors d'un clic sur un hyperlink situé dans un gridview?
    Merci

  2. #2
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mai 2006
    Messages : 152
    Par défaut
    La réponse qui suit suppose que le lien dont tu parles permette la modification ou la suppression d'une ligne d'enregistrements de ton GridView.

    1)
    D'abord il ne s'agit pas d'HyperLink ASP.NET ; le contrôle serveur n'a pas de nom.
    2)
    Le premier événement déclenché côté serveur s'appelle 'OnRowCommand'.
    Suivant que ton lien est de type modification ou suppression, les événements déclenchés ensuite côté serveur correspondent à ce type ; ils s'appellent resp. 'OnRowUpdating' puis 'OnRowUpdated', 'OnRowDeleting' puis 'OnRowDeleted'.
    A noter qu'il est possible d'annuler l'action du GridView en cours à partir de chacun de ces événements ; les suivants ne seront pas produits.

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2008
    Messages : 233
    Par défaut
    c'est pas le cas pour moi..
    le clic sur l'hyperlink situé dans le gridview ouvre une fenetre popup
    je veux récupérer l'id de la ligne (ou se trouve l'hyperlink selectionné) c'est pour cette raison j'ai besoin d'un evenement qui sera déclenché lors du clic sur l'hyperlink
    merci

  4. #4
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,

    C'est un lien HTML ou un controle serveur?

    Si ton lien ne provoque pas la soumission du formulaire il ne se passera rien de particulier. Il faudra récupérer l'info que tu souhaites dans l'URL.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  5. #5
    Membre éprouvé
    Inscrit en
    Décembre 2003
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Décembre 2003
    Messages : 108
    Par défaut
    un hyperlink ne declanche pas d'évenement coté serveur, il a une proprieté NavigateUrl qui te redirige vers l'url choisie (c'est en fait un <a>)
    prefère plutot un linkbutton qui lui fera un postback au serveur

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2008
    Messages : 233
    Par défaut
    bonsoir, l'important pour moi c'est pas l'evenement declenché par le clic sur l'hyperlink,mais comment je recupere l'id de cette ligne, j'ai des traitements a faire dans la popup (ouverte en par le clic sur l'hyperlink)
    je sais pas quelle propriete me permette de mettre cet id dans une variable puis la passer en tant que var de session

  7. #7
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2008
    Messages : 233
    Par défaut
    bonjour,j'ai tenté cette solution..je pense qu'elle n'est pas male mais il y a encore un truc qui ne fonctionne pas...au lien de passer un parametre dans un evenement (qui n'existe pas pour un hyperlink) je le passe en url..mais apparamment je me trompe dans la façon d'ecrire
    voila le code behind:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.QueryString["ligne"] != null)
            {
                id = HttpUtility.HtmlEncode(Request.QueryString["ligne"]);
                //string ff = Request.QueryString["ligne"].ToString();
            }
            else
            {
                id = "(No Selection)";
            }
        }
    le code de mon hyperlink
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <asp:templatefield headertext="Validation">
    	<itemtemplate>
    		<asp:hyperlink id="HyperLink1" runat="server" navigateurl='<%# GetNavigateUrl(Eval("valideI").ToString(),Eval("idI").ToString()) %>'
    			text='<%# Eval("valideI") %>'   Enabled='<%# DataBinder.Eval(Container.DataItem, "valideI").ToString() == "pas encore" %>'     />
    	</itemtemplate>
                     </asp:templatefield>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    protected string GetNavigateUrl(string code,string ligne)
        {
            return String.Format("javascript:var popup = window.open('Validation.aspx?code={0}ligne= + Eval(ligne).ToString()', 'Popup', 'toolbar=no,width=200, height=200, top=0, left=0');", code);
        }
    je pense que l'errreur est dans la partie colorée en orangé
    MERCI

  8. #8
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Citation Envoyé par perloutta Voir le message
    je pense que l'errreur est dans la partie colorée en orangé
    MERCI
    Salut,

    Commececi peut-être:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    return String.Format("javascript:var popup = window.open('Validation.aspx?code={0}ligne=' + Eval(ligne).ToString(), 'Popup', 'toolbar=no,width=200, height=200, top=0, left=0');", code);
    Le "+ Eval(ligne).ToString()" est un morceau de javascript qui devra être interprété par le navigateur. Donc il faut le sortir des apostrophes.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  9. #9
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2008
    Messages : 233
    Par défaut
    beh apres la modification ça ne fonctionne plus!
    alors la mienne est plus correcte,quand j'execute mon code ligne pas ligne je vois l'id que je veux récuperer est detecté cad lors de chargment du gridview la variable ligne contenant l'id change d'une ligne à une autre..mais lors du test de la récupération par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (Request.QueryString["ligne"] != null)
    toujours sa valeur a nul je sais pas pourquoi

  10. #10
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Il faut bien penser que "GetNavigateUrl" va te renvoyer un chaine qui sera placée dans la page web et interprétée par le client. Est-ce que le code javascript est valide?
    Je suis pas spécialiste javascript. Est-ce que "Eval(ligne).ToString()" renvoit bien l'identifiant que tu cherches? Pour tester tu peux essayer de faire un alert('') plutôt qu'un window.open()
    "Winter is coming" (ma nouvelle page d'accueil)

  11. #11
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2008
    Messages : 233
    Par défaut
    bonne idee pour tester! effectivement vous avez raison la variable code est correcte mais la variable ligne n'est pas modifiéé..voici le message d'alert
    Validation.aspx?code=pasencoreligne=+Eval(ligne).ToString()
    y'a t il une solution???

  12. #12
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2008
    Messages : 233
    Par défaut
    ce que me parait bizzarre lorsque je fais un breakpoint ds la methode GetNavigateUrl et je consulte la valeur de la variable ligne (lors du chargement du gridview) ça fonctionne tres bien autrement Eval(ligne).ToString() est valable,non???

  13. #13
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Citation Envoyé par perloutta Voir le message
    voici le message d'alert
    Validation.aspx?code=pasencoreligne=+Eval(ligne).ToString()
    y'a t il une solution???
    Il faut que l'alerte ne renvoi pas "Eval(ligne).ToString()". Il faut donc sortir ce morceau de code de la chaine.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var popup = window.open('Validation.aspx?code={0}ligne=' + Eval(ligne).ToString(), 'Popup', 'toolbar=no,width=200, height=200, top=0, left=0');
    Avec ce code jaavscript, tu constates que la coloration syntaxique "reconnait" que "Eval(ligne).ToString()" ne fait pas partie de la chaine. Du coup, il sera interprété comme du code. Donc il te faut un fonction javascript qui completera ta chaine pour ajouter l'identifiant, genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    mafunction(identifiant)
    {
    var popup = window.open('Validation.aspx?code={0}ligne=' + identifiant, 'Popup', 'toolbar=no,width=200, height=200, top=0, left=0'); 
    }
    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  14. #14
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2008
    Messages : 233
    Par défaut
    merci pour la réponse mais je saisi pas vraiment ce que vous venez de m'expliquer
    d'abord dois je utiliser les deux methodes GetNavigateUrl et ma fonction??
    de plus GetNavigateUrl doit retourner un string qui sera appelé dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:hyperlink id="HyperLink1" runat="server" navigateurl='<%# GetNavigateUrl(Eval("valideI").ToString(),Eval("idI").ToString()) %>'
    autre chose, je comprends pas bine "Donc il te faut un fonction javascript qui completera ta chaine pour ajouter l'identifiant" comment je dois compléter ma chaine? en code javascript??
    peu etre l'erreur est lors de l'appel de GetNavigateUrl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    navigateurl='<%# GetNavigateUrl(Eval("valideI").ToString(),Eval("idI").ToString()) %>'

  15. #15
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Et ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    protected string GetNavigateUrl(string code,string ligne)
    {
    	return String.Format("javascript:var popup = window.open('Validation.aspx?code={0}ligne={1}', 'Popup', 'toolbar=no,width=200, height=200, top=0, left=0');", code, ligne);
    }
    Tu peux regarder cette solution: http://www.developpez.net/forums/d72...velle-fenetre/
    "Winter is coming" (ma nouvelle page d'accueil)

  16. #16
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2008
    Messages : 233
    Par défaut
    merci Immobilis pour la solution, presque c'est résolu
    quando je fais une alerte, j'ai l'affichage suivant Validation.aspx?code=pas encoreligne=4
    c'est exactement ce que je veux (j'ai bien cliqué sur l'hyperlink de la ligne numero 4) mnt le probleme est lors de la récupération
    dans le load de la nouvelle webform (ma popup) tjs la valeur de Request.QueryString["ligne"] est à nul
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     public string id;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.QueryString["ligne"] != null)
            {
                id = HttpUtility.HtmlEncode(Request.QueryString["ligne"]);
                //string ff = Request.QueryString["ligne"].ToString();
            }
            else
            {
                id = "(No Selection)";
            }
        }
    j'ai une autre question lors de l'appel de GetNavigateUrl j'ai utilisé deux manieres, les deux fonctionnent mais je sais pas laquelle est la plus exacte
    1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    navigateurl='<%# GetNavigateUrl(Eval("valideS").ToString(),Eval("idS").ToString()) %>'
    2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    navigateurl='<%# GetNavigateUrl(DataBinder.Eval(Container.DataItem,"valideS").ToString(),DataBinder.Eval(Container.DataItem,"idS").ToString()) %>'
    merci bien

  17. #17
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Citation Envoyé par perloutta Voir le message
    quando je fais une alerte, j'ai l'affichage suivant Validation.aspx?code=pas encoreligne=4
    c'est exactement ce que je veux (j'ai bien cliqué sur l'hyperlink de la ligne numero 4) mnt le probleme est lors de la récupération
    dans le load de la nouvelle webform (ma popup) tjs la valeur de Request.QueryString["ligne"] est à nul
    Il manque le "&" commercial. Correction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    protected string GetNavigateUrl(string code,string ligne)
    {
    	return String.Format("javascript:var popup = window.open('Validation.aspx?code={0}&ligne={1}', 'Popup', 'toolbar=no,width=200, height=200, top=0, left=0');", code, ligne);
    }
    "Winter is coming" (ma nouvelle page d'accueil)

  18. #18
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2008
    Messages : 233
    Par défaut
    yesssssssssssssssssssssssssssssssssssssss
    enfin ça marche merciii Immobilis

  19. #19
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    "Winter is coming" (ma nouvelle page d'accueil)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/12/2008, 10h28
  2. [JFrame] lancer une méthode lors d'un clic sur la croix rouge
    Par Mushu74 dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 17/06/2008, 15h55
  3. Récupérer l'index lors d'un clic sur menustrip
    Par GriffinK dans le forum VB.NET
    Réponses: 5
    Dernier message: 15/04/2008, 14h54
  4. Ouvrir 4 états lors d'un clic sur un bouton
    Par Seb33300 dans le forum WebDev
    Réponses: 8
    Dernier message: 28/01/2008, 15h53
  5. Réponses: 3
    Dernier message: 23/10/2007, 13h35

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