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 :

Validation Multi Onglets


Sujet :

Silverlight

  1. #1
    Membre extrêmement actif
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 144
    Billets dans le blog
    3
    Par défaut Validation Multi Onglets
    Bonjour,

    Je suis confronté à un problème concernant la validation mais dont les champs sont placés dans différents onglets (j'ai donc un tabcontrol avec des tabitem)

    Par exemple j'ai 10 champs textbox dans le 1er onglet et 10 autres dans le second.

    Le problème est que je ne peux pas valider "l'ensemble". Les contrôles de l'onglet qui n'est pas affiché ne sont pas atteignables à la validation et du coup mon validationsummary bug.

    J'aimerais savoir si quelqu'un a développé déjà ce genre de problématique (la validation multi onglets donc) ?

    Et si, comme dans Flex4, il y aurait une option cachée qui permet tout simplement de charger l'ensemble des composants des tabitems afin de pouvoir les atteindre, les valider et les focuser simplement.

    Je sais que la seconde option est plus lourde au niveau perf mais elle a l'avantage d'être simple (aucun code) et d'arriver au but.

    En vous remerciant,

  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
    Je ne pense pas que cette option existe. Le pb se situe a l'initialisation je pense,donc pourquoi pas instancier les usercontrols sur ton layoutroot en visibility a collapsed puis les déplacer dans tes tabitems.

  3. #3
    Membre extrêmement actif
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 144
    Billets dans le blog
    3
    Par défaut
    Ca va être simple

    Bon, je mets en "résolu".. je pense de toute façon en effet qu'il n'y a pas le choix et qu'il va falloir trouver une "astuce".

    La tienne est la seule que j'ai pas testé, à voir pourquoi pas.

    Merci pour ta réponse,

  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
    Redis-nous si tu veux bien si cela fonctionne ou pas

  5. #5
    Membre extrêmement actif
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 144
    Billets dans le blog
    3
    Par défaut
    Salut,

    J'ai recommencé à regarder un peu mais ça va être trop compliqué : trop de contrôles dans les tabs...

    L'idée que j'ai : c'est donc de développer un composant qui a le même comportement qu'un TabControl... SAUF que pour masquer et afficher les onglets, je vais jouer sur l'opacity.

    Ce sera donc plus lourd mais mes contrôles seront tous accessibles en permanence et je n'aurai plus de souci avec le ValidationSummary.

  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
    Trop compliqué de passer les controles qu'il y a dans tes tabs dans des UserControls (1 par tab) afin de les déplacer plus simplement ?

    Sinon la solution que tu proposes devrait être assez simple à mettre en place je pense.

  7. #7
    Membre extrêmement actif
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 144
    Billets dans le blog
    3
    Par défaut
    Je vais refaire des tests mais apparemment dès qu'un control passe en collapsed ça pose problème pour le validation.

    Sinon pour bien comprendre ta solution :

    tu mettrais 1 usercontrol avec dedans tous les contrôles du tab1
    et un autre usercontrol avec dedans tous les contrôles du tab2

    Puis selon le tab sélectionné tu déplacerais un des 2 usercontrol à l'intérieur ?

    C'est ça ?

  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
    tu mettrais 1 usercontrol avec dedans tous les contrôles du tab1
    et un autre usercontrol avec dedans tous les contrôles du tab2
    Oui.

    Puis selon le tab sélectionné tu déplacerais un des 2 usercontrol à l'intérieur ?
    Je pensais directement après le load de chaques usercontrols mais comme ça c'est valable aussi

  9. #9
    Membre extrêmement actif
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 144
    Billets dans le blog
    3
    Par défaut
    Ok je vais tester.. ce qui m'embête c'est en mode "design" sur visual studio.
    Si y a 2 onglets de 40 composants chacun ca risque d'être gênant. Mais avec ma méthode c'est pas gagné non plus.

    En tous les cas je vais tester ta solution dans un 1er temps.

  10. #10
    Membre extrêmement actif
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 144
    Billets dans le blog
    3
    Par défaut
    J'ai mis par exemple un UserControl dans ma child ou il y a le contrôle onglet.

    Sur le chargement du UserControl je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     this.tabContentPanel2.Children.Add(this.ValidationTab2);
    tabContentPanel2 = StackPanel dans le 1er tabitem
    ValidationTab2 = Stackpanel qui contient les contrôles à valider


    Et donc ça ne fonctionne pas car j'ai un message d'erreur :

    le contrôle appartient déjà à un autre enfant.
    J'ai tenté un remove avant de faire le children.add : ça ne plante pas mais mon tabitem reste vide (ce qui me semble logique).

    Je continue de chercher...


    EDIT

    En fait dans ma page , j'ai ajouté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <UserControl>
     <Grid>
      // ici contrôles à valider
    </Grid>
    </UserControl>
    Mais je pense que tu voulais que je crée un UserControl dans l'application et le charger dynamiquement...
    Si c'est ça, le souci c'est que je vais énormément alourdir mon appli.

  11. #11
    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
    Cela fonctionne chez moi

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    	<Grid x:Name="LayoutRoot" Background="White">
     
     
     
    		<Button x:Name="ButtonToto" Content="Toto" Opacity="0"></Button>
    		<Button x:Name="ButtonTiti" Content="Titi" Opacity="0"></Button>
     
    		<controls:TabControl Margin="10" d:LayoutOverrides="Width">
    			<controls:TabItem x:Name="TabToto" Header="TabItem">
    			</controls:TabItem>
    			<controls:TabItem x:Name="TabTiti" Header="TabItem">
    			</controls:TabItem>
    		</controls:TabControl>		
     
    	</Grid>

    On enleve les boutons et on les met dans les tabItems :

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
            void MainPage_Loaded(object sender, RoutedEventArgs e)
            {
    			this.LayoutRoot.Children.Remove( this.ButtonToto );
    			this.LayoutRoot.Children.Remove( this.ButtonTiti );
     
    			this.TabToto.Content = this.ButtonToto;
    			this.TabTiti.Content = this.ButtonTiti;
     
    			this.ButtonToto.Opacity = 1.0;
    			this.ButtonTiti.Opacity = 1.0;
    		}
        }

  12. #12
    Membre extrêmement actif
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 144
    Billets dans le blog
    3
    Par défaut
    En effet... je faisais un Children.Add après et non Content=

    En revanche concernant la validation j'ai toujours des soucis.. surtout avec ma classe perso, qui fonctionne très bien en dehors du TabControl

  13. #13
    Membre extrêmement actif
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 144
    Billets dans le blog
    3
    Par défaut
    Bon, problème résolu définitivement : j'abandonne le TabControl

    Je le simule avec l'Opacity et sur le ValidationSummary :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
      if (e.Target.Control.Tag.ToString() != this.TabItemActive)
                    this.SelectTab(e.Target.Control.Tag.ToString())
     
                Dispatcher.BeginInvoke(delegate { 
                    VisualStateManager.GoToState(e.Target.Control, "InvalidFocused", false);
                });

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

Discussions similaires

  1. Multi-onglet et rafraichissement de page
    Par NutellaPiou dans le forum Applets
    Réponses: 1
    Dernier message: 01/04/2009, 10h47
  2. [COGNOS 8] Export Excel multi-onglets ?
    Par nmarotel dans le forum Cognos
    Réponses: 4
    Dernier message: 10/09/2008, 11h49
  3. Validator et onglets
    Par Fichman dans le forum Struts 1
    Réponses: 1
    Dernier message: 22/08/2008, 09h12
  4. [Appli Fini ou presque ;)] Editeur de texte multi-onglets
    Par Jorael dans le forum Mon programme
    Réponses: 9
    Dernier message: 15/07/2007, 23h30
  5. Editeur de texte multi-onglets et SynEdit
    Par Jorael dans le forum Delphi
    Réponses: 5
    Dernier message: 05/02/2007, 22h59

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