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 :

Changer une image en fonction d'une DropDownList


Sujet :

ASP.NET MVC

  1. #1
    Membre habitué Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Points : 133
    Points
    133
    Par défaut Changer une image en fonction d'une DropDownList
    Bonjour à tous,

    Je cherche à changer le background d'une div en fonction de la sélection d'une DropDownList.

    Ma div est présente dans mon _Layout.cshtml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     <div id="img-title">
                    </div>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #img-title{
         background: url("../Images/MonImage.png") no-repeat;
    }
    Et dans mon contrôleur Create, j'aimerais changer l'image de fond de Div en fonction de la sélection sur une DropDownList :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <div class="editor-field">
         @Html.DropDownList("Type_ID", null,new { @class = "combo-box-form" })
    </div>
    Je suppose que cela va passer par un peu de Jquery j'ai donc fait un petit truc dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function changeImage(image) {
                      $('#img-title').css("background", "url('Images/" + image + ".png')");
                  };
    Par contre comment faire pour détecter le changement de sélection et l'élément sélectionné afin de déclencher ma fonction changeImage ?

    Sinon où suis-je sensé déposer mes fonctions JS pour respecter le patern MVC et les bonnes pratiques ?

    Merci d'avance

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2013
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 47
    Points : 111
    Points
    111
    Par défaut
    Bonjour,

    En effet, il va te falloir passer par un peu de jQuery.
    Tu as juste à capter l'évènement change de ta ddl.

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $('#maddl').change(function(){
        $('#img-title').css("background", "url('Images/" + $(this).val() + ".png')");
    });
    Je n'ai pas testé, mais ça devrait fonctionner.

    Enfin, pour le jQuery, il est sans doute préférable de l'externaliser dans un fichier prévu à cet effet.
    Sinon, tu peux également l'insérer dans la page directement mais c'est moins propre et surtout moins facile à maintenir.

  3. #3
    Membre habitué Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Points : 133
    Points
    133
    Par défaut
    OK merci à toi ça fonctionne très bien.

    Enfin j'ai mis le code dans mon _Layout.cshtml comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      @Scripts.Render("~/bundles/jquery")
            <script>
                $(document).ready(function () {
                    $('#maddl').change(function(){
                          $('#img-title').css("background", "url('Images/" + $(this).val() + ".png')");
                    });
               });
            </script>
    ça fonctionne très bien dans ma vue Create, mais par contre dans ma vue Edit (ou j'ai exactement la même DDL) au lieu de changer l'image ça me l'efface carrément, pourtant je vois avec Firebug que ça passe bien par la fonction changeImage (tout comme dans la vue Create). Et je vois bien toujours grâce à firebug en inspectant ma div qu'il m'a mis la bonne image en background...

    Je comprend pas..

  4. #4
    Membre habitué Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Points : 133
    Points
    133
    Par défaut
    Étrangement c'est exactement sur les même pages où mon image ne s'affichait pas dans le post suivant : http://www.developpez.net/forums/d13...tml-disparait/

Discussions similaires

  1. [XL-2013] Afficher une image en fonction d'une valeur
    Par Dragonouest dans le forum Excel
    Réponses: 8
    Dernier message: 18/06/2015, 10h56
  2. [Python 3.X] Créer une image png à partir d'une image de format quelconque avec Python
    Par bguy4 dans le forum Général Python
    Réponses: 3
    Dernier message: 30/10/2014, 10h49
  3. Réponses: 7
    Dernier message: 21/10/2014, 15h18
  4. Afficher une image par défaut lorsque une image ne s'affiche pas
    Par ne2sbeal dans le forum Général Conception Web
    Réponses: 4
    Dernier message: 10/10/2011, 10h42
  5. Réponses: 4
    Dernier message: 14/06/2009, 20h06

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