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 :

Action au choix d'item combobox devexpress


Sujet :

ASP.NET MVC

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Avril 2016
    Messages : 10
    Points : 11
    Points
    11
    Par défaut Action au choix d'item combobox devexpress
    Bonjour,
    Je développe une application asp.net mvc, EF, et j’utilise les extensions de devexpress.
    Je change la connexion au choix d'un item de combobox, cela marhe très bien.
    Mon petit souci est de pouvoir rediriger après le choix d'un item vers une action d'un controlleur (exemple vers Home/Index).
    Code dans _Layout

    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
    30
    31
    32
    33
    34
    35
     
      @Html.DevExpress().ComboBox(
                                            settings =>
                                            {
                                                settings.Name = "ListItemTest";
                                                settings.Enabled = true;
                                                settings.Properties.ValueField = "value";
                                                settings.Properties.TextField = "description";
                                                settings.Properties.ClientSideEvents.SelectedIndexChanged = "function(s, e){SelectedId(s,e)}";
                                            }).BindList(obj.Descendants("Base").Select(x => new
                                            {
                                                DbName = x.Attribute("value").Value,
                                                AgenceName = x.Attribute("description").Value
                                            }).ToList()).GetHtml()
     
    ....
    ....
    ....
    <script>
            function SelectedId(s, e) {
                s == ComboBox
                var data = {
                    SelectedItem: s.GetValue(),
                };
     
                $.ajax({
                    url: "/Home/Index",
                    type: "POST",
                    dataType: "json",
                    contentType: 'application/json',
                    data: JSON.stringify(data),
                });
     
            }
        </script>

    Code d'Action Index de HomeController
    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
     
     
    [HttpPost]
            public ActionResult Index(string SelectedItem)
            {
                ViewBag.testVar = SelectedItem;
     
     
     
                    Session["Provider"] = "System.Data.SqlClient";
                    Session["DbName"] = SelectedItem;
                    Session["ServerName"] = "localhost";
                    Session["User"] = "sa";
                    Session["Password"] = "password";
                    Session["DataModel"] = "MyDataModel";
     
     
                return RedirectToAction("Home", "testView");
            }
    Code action testView de HomeController

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    @{
        ViewBag.Title = "testView";
        Layout = "~/Views/Shared/_Layout.cshtml";
    }
     
    <h2>testView</h2>
     
    @ViewBag.testVar

    Alors le code de l'action Index s'exécute correctement et change de connexion, c'est juste la partie de redirection qui ne marche pas.
    Avez-vous une idée ?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Points : 1 077
    Points
    1 077
    Par défaut
    Tu ne peux pas faire un redirect lorsque tu fais un call ajax dans ton action. C'est ton code client qui doit rediriger via "window.location ='tonurl';"
    Tu peux utiliser la méthode "$.ajax(...).done(function(){ /* ta redirection ici */ });" de jquery pour réaliser cela...

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Avril 2016
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    Parfais, ça fonctionne, voila le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    public ActionResult Index(){
    // code ......
     
     var urlBuilder = new UrlHelper(Request.RequestContext);
                var url = urlBuilder.Action("testView", "Home");
                return Json(new { status = "success", redirectUrl = url });
     
    }

    code du _Layout.cshtml



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    $.ajax(...).done(function (result) {
     
                    if (result.status === "success") {
                        window.location.href = result.redirectUrl;
                    }
                    else {
                        // show the error message to user
                        alert('Erreur');
                    }
     
     
                });
    Merci beaucoup Dokho1000

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Generer action suivant new item combobox
    Par shell13010 dans le forum Débuter
    Réponses: 7
    Dernier message: 29/10/2012, 19h01
  2. action selon choix dans un ComboBox
    Par sarouji dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 11/08/2011, 12h29
  3. Action listener pour un item de comboBox ?
    Par poulette3000 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 15/05/2007, 14h03
  4. [action script] Bug avec ma combobox
    Par shaado dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 28/04/2006, 14h02
  5. conversion item combobox
    Par piscine dans le forum Bases de données
    Réponses: 6
    Dernier message: 18/11/2004, 12h19

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