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 :

Recuperation Element selectionné Dropdownlist dans vue


Sujet :

ASP.NET MVC

Vue hybride

dragonmax Recuperation Element... 25/08/2011, 16h16
morgand Bonjour, Pourquoi... 29/08/2011, 10h59
dragonmax Mais apres comment je... 29/08/2011, 17h13
morgand Maintenant tu as le choix,... 30/08/2011, 11h17
morgand Que veux tu faire exactement... 30/08/2011, 11h22
dragonmax Merci pour ta reponse, c'est... 30/08/2011, 11h26
morgand Alors nous ce que nous avions... 30/08/2011, 11h31
dragonmax Finalement je le fais en... 30/08/2011, 11h16
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2011
    Messages : 17
    Par défaut Recuperation Element selectionné Dropdownlist dans vue
    Bonjour,
    Je travaille en MVC3
    Pour le moment, dans ma vue, j'ai un menu contenant plusieurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <table style="margin-left:300px;position: absolute;margin-top: 75px;">
            @Html.Label("Niveau secondaire:")
            @Html.DropDownList("LevelSec", (SelectList)ViewData["LevelSec"], this.TempData.Peek("levelSec").ToString(), new
       {
           onchange = "document.getElementById('TheForm').submit();"
       })
        </table>
    Avec cette méthode je recupere dans le controleur la valeur de la dropDownList.
    Mais j'ai ajouter un bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    @Html.ActionLink("Afficher le graph", "Detail", new { Id = 1 }, new
            {
                id = "LienDetail",
                rel = Url.Action("DetailJson", new
                {
                    ...
                    LevelSec = this.TempData.Peek("levelSec").ToString()
                })
            })
    Mais forcement de cette maniere j'ai toujours les memes variables (celles qui ont été transmises par le controleur).
    Mon but c'est dans l'actionLink j'envoie les données selectionnées des DropDownList.
    Merci de m'aider, j'imagine que ça doit pas etre bien compliquer mais j'ai pas trouvé de sujet dans ce genre. :s

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2008
    Messages : 231
    Par défaut
    Bonjour,

    Pourquoi n'utilises tu pas le système normale, avec Html.Begin ? qui va te retourner vers ton Action indiqué avec des données structurées.
    Sinon tu dois le faire en JS à la main c'est à dire que tu dois pré construire ton URL avec Url.Action (blabla), que tu viens manipuler en JS genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var url = "<% Url.Action %>";
    url += "?LeveSec="+$("LeveSec").value;
    Attention le code que j'ai mis n'est pas bon c'est juste un exemple.

    cordialement,

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

    Informations forums :
    Inscription : Juillet 2011
    Messages : 17
    Par défaut
    Citation Envoyé par morgand Voir le message
    Bonjour,

    Pourquoi n'utilises tu pas le système normale, avec Html.Begin ? qui va te retourner vers ton Action indiqué avec des données structurées.
    Sinon tu dois le faire en JS à la main c'est à dire que tu dois pré construire ton URL avec Url.Action (blabla), que tu viens manipuler en JS genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var url = "<% Url.Action %>";
    url += "?LeveSec="+$("LeveSec").value;
    Attention le code que j'ai mis n'est pas bon c'est juste un exemple.

    cordialement,
    Mais apres comment je recupere mes valeurs, là j'avais deja mis mon menu dans un Html.BeginForm (mais j'aivais pas vu que je pouvait directement les lier avec des div)
    Merci en tous cas

  4. #4
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2008
    Messages : 231
    Par défaut
    Maintenant tu as le choix, dans un premier temps dans l'action que tu rappelles, tu ajoutes dans les paramètres "String LeveSec" et tu vérifies :
    string.isNullOrEmpty(LeveSec) avant pour éviter les NullPointer et normalement tu auras la valeurs dans ta variable (il faut que le nom de la variable dans URL porte le même nom que dans les paramètres de l'action)

    Deuxième solution, qui repose sur le même principe de mapping des paramètres, tu as un Model qui est passé en paramètre de ton action qui contient une propriété portant le même nom :

    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
     
     
    public class MaProperty
    {
        public string LeveSec
        {
             get;set;
        }   
    }
     
    public class MonController
    {
            public ActionResult MonAction(MaProperty p_MonLevelSec)
            {
                   if(p_MonLevelSec!=null && string.isNullOrEmpty(p_MonLevelSec.LeveSec)) 
                   {
                            blabla....
                    }
             }
    }
    Mais essaye déjà la première solution la seconde dans un second temps ...

  5. #5
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2008
    Messages : 231
    Par défaut
    Que veux tu faire exactement ? Es ce que tu cherches à structurer ta donnés sous format JSON ? es ce que tu veux juste qu'elle passe dans l'URL ?

    Dans le premier cas (pour l'avoir fait) il faut rajouter un framework externe car de base .NET ne traite pas comme ça le JSON.

    Pour le second tu n'as pas besoin du JSON. Après tu peux envoyer en GET et retourner du JSON. Attention tu risques d'avoir un message de sécurité disant que des informations en GET en Ajax.

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

    Informations forums :
    Inscription : Juillet 2011
    Messages : 17
    Par défaut
    Citation Envoyé par morgand Voir le message
    Maintenant tu as le choix, dans un premier temps dans l'action que tu rappelles, tu ajoutes dans les paramètres "String LeveSec" et tu vérifies :
    string.isNullOrEmpty(LeveSec) avant pour éviter les NullPointer et normalement tu auras la valeurs dans ta variable (il faut que le nom de la variable dans URL porte le même nom que dans les paramètres de l'action)

    Deuxième solution, qui repose sur le même principe de mapping des paramètres, tu as un Model qui est passé en paramètre de ton action qui contient une propriété portant le même nom :



    Mais essaye déjà la première solution la seconde dans un second temps ...
    Merci pour ta reponse, c'est ce que j'avais l'intention de faire, mais pour le moment mon probleme vient du fait que je n'axede pas à mon controlleur...
    Je crois pas que mon Url.Action soit interpreter...

  7. #7
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2008
    Messages : 231
    Par défaut
    Alors nous ce que nous avions fait comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    JAVASCRIPT : 
     
    function getUrlDetailJSON()
    {
         return "<%= Url.Action("DetailJSON","MonController", new {area="MyArea"}) %>";
    }
    Alors deux choses, <%= ce n'est pas un deux points mais bien un égale pour des raisons d'interprétation je pense. la seconde c'est que ton URL tu peux la voir et vérifier qu'elle fonctionne, et tu peux sortir ton code JS dans un fichier externe.

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

    Informations forums :
    Inscription : Juillet 2011
    Messages : 17
    Par défaut
    Citation Envoyé par morgand Voir le message
    Bonjour,

    Pourquoi n'utilises tu pas le système normale, avec Html.Begin ? qui va te retourner vers ton Action indiqué avec des données structurées.
    Sinon tu dois le faire en JS à la main c'est à dire que tu dois pré construire ton URL avec Url.Action (blabla), que tu viens manipuler en JS genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var url = "<% Url.Action %>";
    url += "?LeveSec="+$("LeveSec").value;
    Attention le code que j'ai mis n'est pas bon c'est juste un exemple.

    cordialement,
    Finalement je le fais en javascript,
    J'ai mis ça :
    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
     
    <script type="text/javascript">
            jQuery(document).ready(function () {
                jQuery("a[id^=LienDetail]").click(function (e) {
                    e.preventDefault();
                    var env = "test";var cli = "test";var typ = "test";var app = "test";var lp = "test";var ls = "test";
                    if ($("Env").value != "") { var env = $("Env").value; }
                    if ($("Client").value != "") var cli = $("Client").value;
                    if ($("Type").value != "") var typ = $("Type").value;
                    if ($("Appli").value != "") var app = $("Appli").value;
                    if ($("LevelPri").value != "") var lp = $("LevelPri").value;
                    if ($("LevelSec").value != "") var ls = $("LevelSec").value;
                    var url = "<% Url.Action(\"DetailJson\", new{?Env =" + env + ",?Client = " + cli + ",?Type =" + typ + ",?Appli =" + app + ",?LevelPri =" + lp + ",?LevelSec =" + ls + "})) %>";
                    var url = jQuery(this).attr("rel");
                    jQuery.getJSON(url, function (data) {
                        dataFilter = true;
                        var jsonData = data.JsonData;
                        for (var jd in jsonData) {
                            alert(jd.high);
                        }
                        var priceData = data.JsonPriceData;
                        var volumeData = data.JsonVolumeData;
                        var summaryData = data.JsonSumaryData;
                        var flagData = data.JsonFlagData;
                    });
                    document.getElementById('body-container').innerHTML = '<div id="humblefinance" style="position: relative; margin: 40px 0px; width: 600px; border: 1px solid #99CCFF;";></div>';
                });
            });
        </script>
    Mais il ne va pas dans la fonction DetailJson du controlleur.
    J'appel mal l'URLAction?
    Merci en tous cas au mois maintenant je vois les valeurs.

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/05/2010, 15h27
  2. recuperer l'index de l'element selectionneé dans liste deroulante
    Par moukit233 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/08/2009, 17h02
  3. [Dojo] Récupèrer le dom node de l'element selectionné dans le tree dojo
    Par moukit233 dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 06/07/2009, 20h08
  4. compter les éléments sélectionné dans un tag select
    Par lemmings dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/04/2006, 14h07
  5. [VB6] [FileListBox] Récupérer les éléments sélectionnés
    Par tomnie dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 22/10/2002, 09h11

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