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 :

Remplacer TextBox par dropdownlist


Sujet :

ASP.NET MVC

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 338
    Points : 120
    Points
    120
    Par défaut Remplacer TextBox par dropdownlist
    Bonjour à tous.
    J'ai deux model

    UtilisateurModel

    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Class Utilisateur
        Public Property Id As Integer
        Public Property DirectionId As Integer
        Public Property Departement As String
    End Class

    DirectionModel

    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Class Direction
        Public Property Id As Integer
        Public Property Valeur As String
        Public Property Supprime As Boolean
    End Class

    et ma vue

    CreateOrEditUtilisateurView

    Code CSHTML : 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
    @ModelType ANNUAIRE.Utilisateur
    @Code
        ViewData("Title") = "Create or Edit"
        Layout = "~/Views/Shared/_Layout.vbhtml"
    End Code
     
    <h2>Create Or Edit</h2>
     
    @Using (Html.BeginForm()) 
        @Html.AntiForgeryToken()
     
        @<div Class="form-horizontal">
            <h4>Utilisateur</h4>
            <hr />
            @Html.ValidationSummary(True, "", New With {.class = "text-danger"})
            @Html.HiddenFor(Function(model) model.Id)
     
            <div class="form-group">
                @Html.LabelFor(Function(model) model.DirectionId, htmlAttributes:= New With { .class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(Function(model) model.DirectionId, New With {.htmlAttributes = New With {.class = "form-control"}})
                    @Html.ValidationMessageFor(Function(model) model.DirectionId, "", New With {.class = "text-danger"})
                </div>
            </div>
     
            <div class="form-group">
                @Html.LabelFor(Function(model) model.Departement, htmlAttributes:=New With {.class = "control-label col-md-2"})
                <div class="col-md-10">
                    @Html.EditorFor(Function(model) model.Departement, New With {.htmlAttributes = New With {.class = "form-control"}})
                    @Html.ValidationMessageFor(Function(model) model.Departement, "", New With { .class = "text-danger" })
                </div>
            </div>
       </div>
    End Using

    Je voudrais remplacer le textbox de "DirectionId" par un dropdownlist rempli à partir du modèle "Direction"
    Toutes mes recherches sont infructueuses.
    Si quelqu'un a une solution ou un lien, je lui serai reconnaissant

  2. #2
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 338
    Points : 120
    Points
    120
    Par défaut
    J'ai ajouté dans la classe Utilisateur de UtilisateurModel une propriété "Direction"

    UtilisateurModel:

    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Class Utilisateur
        Public Property Id As Integer
        Public Property DirectionId As Integer
        Public Property Departement As String
        Public Property Direction As IEnumerable(Of SelectListItem)
    End Class

    Dans la vue de Utilisateur, j'ai modifié le contrôle du champ

    Code CSHTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            <div class="form-group">
                @Html.LabelFor(Function(model) model.Direction, htmlAttributes:=New With {.class = "control-label col-md-2"})
                <div class="col-md-10">
                    @Html.DropDownListFor(Function(model) model.DirectionId, Model.Direction, New With {.htmlAttributes = New With {.class = "form-control"}})
                    @Html.ValidationMessageFor(Function(model) model.DirectionId, "", New With {.class = "text-danger"})
                </div>
            </div>

    Dans le controller, j'ai ceci

    ' GET: Utilisateurs/Create and Edit
    Code VB.NET : 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
     
            Function CreateEdit(ByVal id As Integer?) As ActionResult
                Dim modele = New Utilisateur With {.Direction = db.Directions.ToList().[Select](Function(x) New SelectListItem With {.Text = x.Valeur, .Value = x.Id})}
     
                If IsNothing(id) Then
                    Return View(modele)
                Else
                    If IsNothing(id) Then
                        Return New HttpStatusCodeResult(HttpStatusCode.BadRequest)
                    End If
     
                    Dim Utilisateur As Utilisateur = db.Utilisateurs.Find(id)
     
                    If IsNothing(Utilisateur) Then
                        Return HttpNotFound()
                    End If
     
                    Return View(Utilisateur, modele)
                End If
            End Function

    Ça marche quand je fait "Create". Mais quand je fait "Edit", il me met cette erreur
    System.InvalidCastException : 'Impossible d'effectuer un cast d'un objet de type 'ANNUAIRE.Utilisateur' en type 'System.Web.Mvc.IView'.'
    à cette ligne
    Return View(Utilisateur, modele)
    du controller

    Je ne vois pas ce qui est anormal

Discussions similaires

  1. REMPLACER TEXTBOX PAR CHECKBOX
    Par miloud54000 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/05/2017, 13h12
  2. [XL-2013] remplacer un textbox par un combobox
    Par ecolefrancois dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/01/2014, 12h54
  3. [AC-2003] Remplacer plusieurs textbox par un label et une seule textbox
    Par buzz73 dans le forum IHM
    Réponses: 2
    Dernier message: 21/12/2009, 12h35
  4. Remplacer textbox par richtextbox
    Par starkson dans le forum ASP.NET
    Réponses: 1
    Dernier message: 08/06/2007, 10h27
  5. Remplacer Select par DropDownList
    Par alicia26 dans le forum ASP.NET
    Réponses: 8
    Dernier message: 06/06/2007, 19h47

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