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

Signaler
Messages postés
39
Date d'inscription
jeudi 9 juin 2011
Statut
Membre
Dernière intervention
15 janvier 2014
-
aspkiddy
Messages postés
39
Date d'inscription
jeudi 9 juin 2011
Statut
Membre
Dernière intervention
15 janvier 2014
-
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

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

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;//
        }
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
31
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é. -