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

Silverlight Discussion :

Déclencher click Hyperlink avec un button


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de wil4linux
    Inscrit en
    Février 2005
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2005
    Messages : 205
    Par défaut Déclencher click Hyperlink avec un button
    Hello,

    j'essaie de déclencher le click d'un hyperlink en ayant comment content un button.

    En gros c'est dans l'évenenement Click du bouton que j'aimerai déclencher l'action du lien pour changer de page.

    ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <HyperlinkButton x:Name="hbTest" NavigateUri="/toto" Target="ContentFrame" >
        <HyperlinkButton.Content>
            <RadButton x:Name="btnTest" Content="äge Test" />
        </HyperlinkButton.Content>
    </HyperlinkButton>
    Si vous avez mieux je suis preneur.

    Je passe par là, car en fait j'utilise les bouton Telerik avec le style OfficeBlue, c'est pour éviter de m'embêter à créer le même style pour les Hyperlink.

    Merci

  2. #2
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Bonjour,

    je pense que ceci devrait marcher :

    Rajoute dans ton RadButton un evenement Click.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <RadButton x:Name="btnTest" Content="äge Test" Click="MonClick" />
    coté .cs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public void MonClick(object sender, RoutedEventHandler e)
    {
         // appel du click de l'hyperlink
         if( this.hbTest.Click != null )
         {
               this.hbTest.Click( this.hbTest, null ); 
         }
    }

  3. #3
    Membre confirmé Avatar de wil4linux
    Inscrit en
    Février 2005
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2005
    Messages : 205
    Par défaut
    Merci ça ne compile pas.

    Error 1 The event 'System.Windows.Controls.Primitives.ButtonBase.Click' can only appear on the left hand side of += or -=
    L'erreur est pour la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.hbTestSessions.Click(this.hbTestSessions, null);
    je remet mon code exact:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <HyperlinkButton x:Name="hbTestSessions"  NavigateUri="/TestSessions" TargetName="ContentFrame" >
                        <HyperlinkButton.Content>
                            <telerikControl:RadButton x:Name="btnTestSessionsPage" Content="Test Sessions" 
                                                          telerikControl:StyleManager.Theme="Office_Blue" 
                                                          Height="25" FontSize="10" Margin="2" Click="btnTestSessionsPage_Click" />
                        </HyperlinkButton.Content>
    </HyperlinkButton>
    et mon code behind:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    private void btnTestSessionsPage_Click(object sender, RoutedEventArgs e)
            {
                if (this.hbTestSessions.Click != null)
                {
                    this.hbTestSessions.Click(this.hbTestSessions, null);
                }
            }
    J'ai même essayé de créer l’évènement Click du HyperlinkButton et le déclencher dans le Click de mon bouton:

    example:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    private void btnTestSessionsPage_Click(object sender, RoutedEventArgs e)
            {
                hbTestSessions_Click(this.hbTestSessions, e);
            }
     
    private void hbTestSessions_Click(object sender, RoutedEventArgs e)
            {
     
            }
    Ce que je ne sais pas c'est comment l'hyperlink se débrouille pour déclencher le changement de page sur son click en code behind...

  4. #4
    Membre confirmé Avatar de wil4linux
    Inscrit en
    Février 2005
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2005
    Messages : 205
    Par défaut
    Bon en fait même pas besoin de s'embêter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private void btnTestSessionsPage_Click(object sender, RoutedEventArgs e)
            {
                ContentFrame.Navigate(hbTestSessions.NavigateUri);
            }
    l'hyperlink n'est pas indispensable...

    Il faut juste l'URL à transmettre à la navigation Frame.

    Encore merci

  5. #5
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Pour la solution de click que je proposais, effectivement cela ne peut pas marcher La seule façon d'appeler la méthode Click de l'HyperLinkButton est d'appeler non pas l'évenement mais la méthode qui lui est abonnée (comme tu l'as illustré).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    private void btnTestSessionsPage_Click(object sender, RoutedEventArgs e)
            {
                hbTestSessions_Click(this.hbTestSessions, e);
            }
     
    private void hbTestSessions_Click(object sender, RoutedEventArgs e)
            {
     
            }
    J'imagine que cela peut être parfois ennuyeux dans des opérations de plomberie de controle mais bon c'est un autre sujet.

    Si tu as trouvé ce que tu recherchais, tout va bien

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/12/2005, 15h35
  2. [xsl] Problème hyperlink avec paramètre
    Par ekmule dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 13/12/2005, 08h46
  3. Déclencher une action avec un chrono
    Par Oberown dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/09/2005, 14h22
  4. [JTextField] Déclencher une action avec la touche ENTER
    Par tchoukapi dans le forum Composants
    Réponses: 10
    Dernier message: 19/09/2005, 14h37
  5. Réponses: 5
    Dernier message: 08/02/2005, 20h50

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