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

ASP.NET MVC Discussion :

Utilisation de radioButton dans la vue index [Débutant(e)]


Sujet :

ASP.NET MVC

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2011
    Messages : 17
    Points : 8
    Points
    8
    Par défaut Utilisation de radioButton dans la vue index
    Bonjour,
    je suis en train de placer dans ma vue index deux radioButton, mais j'ai deux problème d'une part je n'arrive pas a afficher l'état sur le radio button, d'autre part je n'arrive pas à récupérer l'état.

    Voici mon index
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    public ActionResult Index(string currentUser)
    {
       this.TempData.Clear();
       VueForum vforum = new VueForum(new TriParDate());
     
       vforum.tri();
     
       this.TempData.Add("triDate", true);
       this.TempData.Add("triLieu", false);
     
       this.ViewData["triDate"] = true;
       this.ViewData["triLieu"] = false;
     
       return View(vforum.laListe);
    }
    qui m'envoie sur une page index m'affichant des modeles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        @Html.ActionLink("Create New", "Create")
        <div id="NoteListBlock">
        @Html.RadioButton("TypeTri", ViewData["triDate"], this.TempData.Peek("triDate")) Tri par Date
        @Html.RadioButton("TypeTri", ViewData["triLieu"], this.TempData.Peek("triLieu")) Tri par Lieu
     
        @Html.ActionLink("Valider", "IndexSuite")
        </div>
    et me renvoyant, une fois un radioButton sélectionné, sur une autre méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    public ActionResult IndexSuite(string alors)
    {
       object triDate= this.TempData.Peek("triDate");
       object triLieu = this.TempData.Peek("triLieu");
     
       VueForum vforum;
     
       if (triLieu.ToString().Contains("true"))
       {
           vforum = new VueForum(new TriParLieu());
       }
       else
       {
           vforum = new VueForum(new TriParDate());
        }
     
        vforum.tri();
     
        ViewBag.triDate = true;
        ViewBag.triLieu = false;
     
         this.ViewData["triDate"] = true;
         this.ViewData["triLieu"] = false;
     
          return View(vforum.laListe);
    }
    J'ai pas mal cherché sur le web, mais j'ai pas trouvé grand chose à chaque fois le radioButton été lié à un modèle
    Merci
    Cordialement,

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Points : 1 498
    Points
    1 498
    Par défaut
    Salut,

    Il y a quelques incompréhensions sur le comportement de mvc et de ton formulaire html. Lorsque tu poste ton formulaire, à chaque champ posté il créée un dico avec comme clé le name du champ posté et comme valeur sa valeur.

    Du coup dans le cas d'une textebox de la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="textbox" name="plop" value="haha trop fort" />
    on aura dans le viewdata une clé "plop" et une valeur "haha trop fort".

    Maintenant pour le cas de radios: il faut créé plusieurs radios ayant le même nom (pour être exclusives) mais ayant des valeurs différentes (pour savoir laquelle tu as cochée).

    toi, tu as créé deux radios ayant le même name, jusque-là tout est normal, par contre en valeur tu leur affectes
    qui est une première erreur, car tu affectes un booléeen en valeurs pour différencier tes radios...


    Du coup sur ta vue il te faut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @Html.RadioButton("TypeTri", "triDate", this.TempData.Peek("triDate")) Tri par Date
    @Html.RadioButton("TypeTri", "triLieu", this.TempData.Peek("triLieu")) Tri par Lieu
    Et sur ton action:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(this.ViewData["TypeTri"].ToString() == "triDate"){ //à toi de faire le reste 
    if(this.ViewData["TypeTri"].ToString() == "triLieu"){ //à toi de faire le reste
    Voila, cela devrait le faire.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2011
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    Merci beaucoup pour ta réponse, maintenant le bouton radio connait la value présélectionné, malheureusement mon ViewData est vide, quand je le récupère dans mon index.
    La référence d'objet n'est pas définie à une instance d'un objet.
    ça été placer comme ça dans la vue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    @using (Html.BeginForm())
        {
       @Html.ValidationSummary(true)
       <fieldset>
     
        @Html.RadioButton("TypeTri", "triDate", this.TempData.Peek("triDate")) Tri par Date
        @Html.RadioButton("TypeTri", "triLieu", this.TempData.Peek("triLieu")) Tri par Lieu
     
     
        <input type="submit" value="Trier" />
        </fieldset>
        }
    et comme ça dans le contrôleur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
      [HttpPost]
            public ActionResult Index(object alors)
            {
                object triDate= this.TempData.Peek("triDate");
                object triLieu = this.TempData.Peek("triLieu");
                object tri = this.TempData.Peek("Tri");
     
                VueForum vforum;
     
                if(this.ViewData["TypeTri"].ToString() == "triLieu")
                {
                    vforum = new VueForum(new TriParLieu());
                }
                else
                {
                    vforum = new VueForum(new TriParDate());
                }
     
                vforum.tri();
     
                ViewBag.triDate = true;
                ViewBag.triLieu = false;
     
                this.ViewData["triDate"] = true;
                this.ViewData["triLieu"] = false;
     
                return View(vforum.laListe);
            }
    Merci encore pour ta réponse.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Points : 1 498
    Points
    1 498
    Par défaut
    Re, et désolé pour le retard.

    J'imagine que lorsque tu postes ton formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.ViewData["triDate"]
    est null.

    Peux-tu nous dire ce qu'il y a dans le viewdata et ce que génère ta vue ?

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/05/2013, 13h59
  2. [PHP 5.3] Utiliser un objet dans une vue
    Par leccux dans le forum Langage
    Réponses: 9
    Dernier message: 31/12/2010, 13h44
  3. Réponses: 4
    Dernier message: 30/07/2009, 09h56
  4. Utilisation d'un 'record' dans une vue
    Par olof dans le forum SQL
    Réponses: 27
    Dernier message: 03/04/2008, 18h29
  5. Utiliser des objets SWING dans une vue RCP
    Par manuga72 dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 20/10/2006, 17h26

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