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

Développement Web avec .NET Discussion :

Page de modification avec champ liste (select)


Sujet :

Développement Web avec .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2013
    Messages
    256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 256
    Par défaut Page de modification avec champ liste (select)
    Bonjour,
    Ma page de modification contient des champ select qui affiche les libellés et option garde les ID.
    Je vourais, sur ma page razor, sélectionner la donnée à modifier et le reste de la liste. J'ai une exception sur la page cshtml :

    Nom : exception.png
Affichages : 51
Taille : 51,3 Ko

    Controller
    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
    public async Task<ActionResult> Edit(int? id)
    {
        if (id == null)
        {
            return NotFound();
        }
     
        var SearchOperation = await _context.Operations.FromSqlRaw("EXEC dbo.affiche_operations").ToListAsync();
        var listOperations = SearchOperation.FirstOrDefault(x => x.numero_operation == id);
     
        if (listOperations == null)
        {
            return NotFound();
        }
     
        var listeNatureOperation = await _context.NatureOperations.ToListAsync();
        ViewBag.lib_nature= new SelectList(listeNatureOperation, "CodeNature", "LibNature", selectedValue: listOperations.lib_nature);
     
        var listEmetteur = await _context.Emetteurs.ToListAsync();
        ViewBag.Emetteur = new SelectList(listEmetteur, "CodeEmetteur", "raison_sociale", selectedValue: listOperations.CodeEmetteur);
     
          return View(listOperations);
    }
    Page 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
    15
    16
    17
    18
    <form asp-action="Edit">
        <div asp-validation-summary="ModelOnly" class="text-danger"></div>
        <input type="hidden" asp-for="numero_operation" />
        <div class="form-group">
            <label asp-for="CodeEmetteur" class="control-label"></label>
            <select asp-for="CodeEmetteur" asp-items="@ViewBag.Emetteur" class="form-control">
                <option value="">-- Selectionner émetteur --</option>
            </select>
            <span asp-validation-for="CodeEmetteur" class="text-danger"></span>
        </div>
        <div class="form-group">
            <label asp-for="lib_nature" class="control-label"></label>
            <select asp-for="lib_nature" asp-items="@ViewBag.lib_nature" class="form-control">
                <option value="">-- Selectionner le type --</option>
            </select>
            <span asp-validation-for="lib_nature" class="text-danger"></span>
        </div>
    </form>

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2013
    Messages
    256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 256
    Par défaut
    Bonjour,
    J'ai trouvé la solution à mon problème en modifiant le controller et la page cshtml

    Controller
    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
    36
    public async Task<ActionResult> Edit(int? id)
    {
     
        if (id == null)
        {
            return NotFound();
        }
     
        var operation =  _context.Operations.FirstOrDefault(x => x.numero_operation == id);
     
        if (operation == null)
        {
            return NotFound();
        }
     
        var Model = operation;
     
        var listeEmetteurs = await _context.Emetteurs.Where(n => n.CodeEmetteur == operation.CodeEmetteur).ToListAsync();
        ViewBag.codeEmetteur = new SelectList(listeEmetteurs, "CodeEmetteur", "RaisonSociale", operation.CodeEmetteur);
     
        var listeNatureOperation = await _context.NatureOperations.Where(n => n.Code_Nature == operation.CodeNature).ToListAsync();
     
        Model.ListEmetteur = await _context.Emetteurs.Select(e => new SelectListItem
        {
            Value = e.CodeEmetteur.ToString(),
            Text = e.RaisonSociale
        }).ToListAsync();
     
        Model.ListNatureOperation = await _context.NatureOperations.Select(n => new SelectListItem
        {
            Value = n.Code_Nature.ToString(),
            Text = n.Lib_Nature
        }).ToListAsync();
     
        return View(Model);
    }
    La page
    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
    v class="col-md-4">
            <form asp-action="Edit" enctype="multipart/form-data">
                <div asp-validation-summary="ModelOnly" class="text-danger"></div>
                <input type="hidden" asp-for="numero_operation" />
                <div class="form-group">
                    <label asp-for="CodeEmetteur" class="control-label"></label>
                    <select asp-for="CodeEmetteur" asp-items="Model.ListEmetteur" class="form-control">
                        <option value="">-- Selectionner l émetteur --</option>
                    </select>
                    <span asp-validation-for="CodeEmetteur" class="text-danger"></span>
                </div>
                <div class="form-group">
                    <label asp-for="CodeNature" class="control-label"></label>
                    <select asp-for="CodeNature" asp-items="Model.ListNatureOperation" class="form-control">
                        <option value="">-- Selectionner le type --</option>
                    </select>
                    <span asp-validation-for="CodeNature" class="text-danger"></span>
                </div>
    </form>

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

Discussions similaires

  1. [AC-2013] Publipostage avec champ liste déroulante
    Par k.boutroix dans le forum Access
    Réponses: 3
    Dernier message: 23/03/2016, 22h23
  2. [AC-2010] Import avec champs liste multi critère
    Par Aerial dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 25/11/2011, 11h15
  3. Réponses: 2
    Dernier message: 24/10/2006, 13h42
  4. Pb sélection avec Champ vide
    Par Luffy Duck dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/10/2005, 13h11
  5. [CR 8.5] filtrer avec l'expert selection un champs calculé!!
    Par abdel6908 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 14/06/2005, 11h30

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