En restant dans le même écran comment peut on récupérer la valeur d'un champ

Résolu
aspkiddy
Messages postés
39
Date d'inscription
jeudi 9 juin 2011
Statut
Membre
Dernière intervention
15 janvier 2014
- 1 mai 2012 à 20:10
aspkiddy
Messages postés
39
Date d'inscription
jeudi 9 juin 2011
Statut
Membre
Dernière intervention
15 janvier 2014
- 2 mai 2012 à 22:58
Bonjour,

J'ai un formulaire où j'affiche le prix de fruits...
Il y a une exception pour seulement Orange [frOrange]
Je veux ajouter une option : selon la couleur d'orange, je vais changer le prix.
Il y a deux couleurs : [ORANGE] ou [VERT]
Pour les autres fruits il n'y a qu'une option c'est [VERT]

Les utilisateurs choisissent le fruit [fp.BoiteStruct.GenreId] dans l'écran précédent [fruit_page]
et dans la page actuelle
Ils tapent leurs couleurs s'il veut dans un champ [couleurChoixTextBox] avec la valeur de ce champ on définit la couleur de notre fruit [couleurId]
S'il ne tape pas correctement [ORANGE] c'est automatiquement en Vert (je sais c'est un peu bizarre, mais c'est la vie).
Alors pour cela j'utilise un switch imbriqué
En suite j'affecte la nouvelle variable [CouleurFruit] par la valeur de mon champ [couleurChoixTextBox] pour utiliser dans un autre écran...

Voici le code que je pense à utiliser :
    private void LoadControls()
    {
        object voirCeQueCestPageState = Session["VisionnerCeQueCestPage"];
        fruit_page.VisionnerCeQueCestPageState fp = (fruit_page.VisionnerCeQueCestPageState)voirCeQueCestPageState;

       // bouton action comemnt faire 
       // protected void Validate_CodePromotion(object sender, System.EventArgs e)

        string couleurId;

        switch (fp.BoiteStruct.GenreId)
        {

            case "frOrange":
                switch (couleurChoixTextBox.Text)
                {
                    case "ORANGE":
                        couleurId = "ORANGE";
                        break;


                    default:

                        couleurId = "VERT";
                        break;

                }
                break;



            default:

                couleurId = "VERT";
                break;
        }

        CalculStruct calculStruct = (CalculStruct)promotion.GetPromotion(fp.BoiteStruct.GenreId + couleurId);
        //avec GetPromotion je vais calculer le prix

        SavePageState();
    }

    private void SetPageState()
    {
        //affecter la variable pour l'écran suivant
        reservationOrangePageState.CouleurFruit = couleurChoixTextBox.Text;
        SavePageState();
    }
    public struct ReservationPageState
    {
        //affecter la variable pour l'écran suivant
        public string CouleurFruit;
    }

Alors mon question comment je peux recuperer la valeur de mon champs ? par quelle moyen ? je vais faire une bouton (?) :



Mais comment je peux intégrer cette action [protected void Valider_couleur(object sender, System.EventArgs e)] à l'intérieur de [ private void LoadControls()] ?

2 réponses

aspkiddy
Messages postés
39
Date d'inscription
jeudi 9 juin 2011
Statut
Membre
Dernière intervention
15 janvier 2014

2 mai 2012 à 22:58
Merci Krimog,

J'ai trouvé la solution...
Merci pour vos aides...
Bonne soirée :

avec 1 textbox + 1 label et un bouton :
        
        

        Label : 
        

        
        


et voici le code :
		 protected void Page_Load(object sender, System.EventArgs e)
        {

            string couleurId;

//afficher la valeur lors de affichage

            switch (couleurChoixTextBox.Text)//
            {
                case "":
                    labelCaptureCouleurChoix.Text = "VERT";
                    break;

                default:
                    labelCaptureCouleurChoix.Text = couleurChoixTextBox.Text;//
                    break;

            }

couleurId =labelCaptureCouleurChoix.Text;
}




 protected void Envoi(object sender, System.EventArgs e)
        {
           // CEst pour changer la valur du label
            // par la valeur d'un texbox
            labelCaptureCouleurChoix.Text = couleurChoixTextBox.Text;//
        }
3
krimog
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Membre
Dernière intervention
14 février 2015
51
2 mai 2012 à 10:48
Apparemment, c'est un problème d'ASP.net, je déplace donc ce message vers le forum approprié.

Je ne suis pas un pro de l'ASP.net, mais je vois 3 solutions (classées de la pire à la meilleure, si on se concentre sur les performances) :

- Faire un rechargement de la page lors du changement de la couleur, avec un autopostback à true si la couleur se trouve dans une . Ainsi, dans l'événement attaché au OnChange de ta dropdownlist, tu pourras récupérer la valeur de celle-ci :
((DropDownList)sender).SelectedItem
et modifier la valeur du prix (que tu affiches, par exemple, via un ).

- Même chose que la première solution, en utilisant de l'ASP.net AJAX. Ainsi, toute la page n'aura pas besoin de se recharger lorsque tu changeras la couleur.

- Passer par du javascript.

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
0