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 :

Navigation vers Page sans Frame?


Sujet :

Silverlight

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 67
    Par défaut Navigation vers Page sans Frame?
    Bonjour,

    Je suis en train de bidouiller SJ 4 en partant du template Business App (RIA Services)

    Je souhaiterai tranformer le fonctionnement du template en commencant l'application par un login obligatoire.

    Je pensais créer une page LoginPage.xaml ouverte par App.xalm.cs et, une fois l'authentifiation réussie, ouvrir MainPage.xmal.

    J'ai essayé via une frame avec un succès mitigé. Serait-il possible que j'ouvre MainPage.xaml aprés l'authentification sans passer par une frame? En plus, je souhaite pas aprticulièrement que la page de login apparaisse dans l'historique de navigation....

    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,

    Tu peux créer un UserControl Login et l'ajouter dans MainPage.xaml.
    Ta frame doit être invisible et tu dois placer ton UserControl comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <Grid x:Name="LayoutRoot">
     
    <Frame x:Name="MaFrame" Visibility="Collapsed"/>
     
    <Login x:Name="MonLogin">
     
    </Grid>
    ensuite si ton Login réussit tu affiches "MaFrame" et cache "MonLogin".
    Ainsi il ne sera pas dans l'historique.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 67
    Par défaut
    Ca implique que j'ai une Frame qui prenne l'ensemble de la fenetre? comment faire?

    J'aurais préféré éviter cet empillement pour fonctionner avec des pages différentes pour le login et pour l'appli...

    Merci

  4. #4
    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
    Franck,

    J'ai essayé via une frame avec un succès mitigé. Serait-il possible que j'ouvre MainPage.xaml aprés l'authentification sans passer par une frame? En plus, je souhaite pas aprticulièrement que la page de login apparaisse dans l'historique de navigation....
    La technique par empilement a, au moins, l'avantage de fonctionner (et sans historique)

    Ca implique que j'ai une Frame qui prenne l'ensemble de la fenetre? comment faire?
    Désolé mais j'ai du mal à voir ce que tu ne comprends pas. Peux tu nous expliquer plus clairement ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 67
    Par défaut
    Bonjour,

    Dans ton exemple de code, tu crées une frame

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <Frame x:Name="MaFrame" Visibility="Collapsed"/>
    A priori cette frame contiendra toutes les pages de l'appli, navigation incluse. n'est ce pas?

  6. #6
    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
    A priori cette frame contiendra toutes les pages de l'appli, navigation incluse. n'est ce pas?
    Oui c'est cela, comme dans le template Business App que tu as utilisé.
    Le UserControl Login doit être le même que celui que tu retrouve dans la fenetre Login (quand tu appuies sur l'hyperlink Login)

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 67
    Par défaut
    J'ai fini par faire un show du user control proposé dans le template. tout fonctionne bien: l'ouverture du systeme de login, l'authentification etc...

    Par contre, une fois l'authentification réussie je dois changer la visibilité de la frame et là je seche. Le user control ne la connais pas. Quel est le meilleur moyen: un event?

    Merci

  8. #8
    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
    En effet, tu peux créer un event sur ton Usercontrol Login.

    Sinon tu peux aussi utiliser le pattern MVVM.
    Ainsi, tu peux avoir un viewmodel (appelons le AuthenticateViewModel) commun à Login et ton Main. Le viewModel contient une propriété (notifiable) du genre IsAuthenticated qui indique que l'authentification a eu lieu. ensuite tu bindes la propriété sur la propriété Visibility de Login et Frame (via un converter). C'est plus complexe à mettre en place mais à l'usage le ViewModel est plus puissant.

    Si tu ne connais pas MVVM je te renvoie à ça

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

Discussions similaires

  1. Redirection de page sans frame
    Par christo.pop dans le forum Flash
    Réponses: 2
    Dernier message: 30/11/2006, 11h29
  2. MàJ dynamique d'une demi-page sans frame
    Par leminipouce dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 31/08/2006, 10h27
  3. lien externe vers page avec frame
    Par rdams dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 19/07/2006, 11h24
  4. Afficher une page web dans une autre page sans frame
    Par bahs dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 24/03/2006, 17h51
  5. [Frames] un lien vers une page de Frames vers une page sans
    Par jamesleouf dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 23/09/2005, 18h25

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