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 :

Afficher une seule valeur dans une vue contenant une liste d'un objet


Sujet :

ASP.NET MVC

  1. #1
    Membre à l'essai
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Octobre 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant E-Business
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2013
    Messages : 33
    Points : 21
    Points
    21
    Par défaut Afficher une seule valeur dans une vue contenant une liste d'un objet
    Bonjour,

    Je m'excuse d'avance pour la simplicité de ma question mais j'ai beau chercher sur les forums, je ne trouve pas d'aide à mon problème...

    J'ai une vue qui à partir d'une liste d'objet affiche un tableau.
    Ce dernier comprend 6 colonnes dont les 2 premières contiennent toujours la même valeur.Pièce jointe 202618Pièce jointe 202618

    Je souhaite simplifier ce tableau en supprimant ces deux colonnes et en ajoutant à la place mes 2 champs en entête de celui-ci afin d"éviter la répétition de ces valeurs à chaque fois.
    CF copie d'écran (AVANT => APRES)

    Dsl encore pour cette question bête mais je suis débutant.

    Merci de votre aide
    Images attachées Images attachées  

  2. #2
    Membre éprouvé Avatar de Momoth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 318
    Points : 1 236
    Points
    1 236
    Par défaut
    Salut,

    Tu peux nous montrer ce que tu as déjà niveau code ?
    La Triforce du développement : Fainéantise, Curiosité et Imagination.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Octobre 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant E-Business
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2013
    Messages : 33
    Points : 21
    Points
    21
    Par défaut
    Merci de ton aide
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    @{
        ViewBag.Title = "Saisiedesheures";
    }
     
     
    <h2>Tableau de saisie des horaires de la centrale</h2>
    @using (Html.BeginForm("RECUP", "SaisieHoraires", FormMethod.Post))
    {
     
        <table class="table">
            <tr>
                <th>
                    Nom
                </th>
                <th>
                    Date de travail
                </th>
                <th>
                    Début
                </th>
                <th>
                    Fin
                </th>
                <th> 
                    Valeur
                </th>
                <th>
                    Modalité
                </th>
            </tr>
     
            @for (int i = 0; i < Model.Count; i++)
            {
                <tr>
                    <td>
                        @Model[i].Nom
                        <input type="hidden" name="Heuresselections[@i].NomID" value="@Model[i].NomID" />
                        <input type="hidden" name="Heuresselections[@i].DateTravail" value="@Model[i].DateTravail" />
                    </td>
                    <td>
                        @Model[i].DateTravail.ToShortDateString()
                    </td>
                    <td>
                        <input type="text" name="Heuresselections[@i].Debut" style="width:50px;height:20px" value="@Model[i].Debut" />
                    </td>
                    <td>
                        <input type="text" name="Heuresselections[@i].Fin" style="width:50px;height:20px"  value="@Model[i].Fin" />
                    </td>
                    <td>
                        <input type="text" name="Heuresselections[@i].Valeur" style="width:50px;height:20px"  value="@Model[i].Valeur" />
                    </td>
                    <td>
                        <input type="text" name="Heuresselections[@i].Modalite" style="width:50px;height:20px"  value="@Model[i].Modalite" />
                    </td>
                </tr>
            }
     
        </table>
     
        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                    <input type="submit" value="Valider la saisie" class="btn btn-default" />
    </div>
        </div>
     
        <div>
            @Html.ActionLink("Retourner aux choix précédents", "Selectiondesheures")
        </div>
    }

  4. #4
    Membre éprouvé Avatar de Momoth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 318
    Points : 1 236
    Points
    1 236
    Par défaut
    essaye quelque chose comme ca :

    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
     
    <table>
    <tr>
                <th>
                    Nom
                </th>
                <th>
                    Date de travail
                </th>
    </tr>
    <tr>
                <td>
                @Model[0].Nom
                <input type="hidden" name="Heuresselections[0].NomID" value="@Model[0].NomID" />
                <input type="hidden" name="Heuresselections[0].DateTravail" value="@Model[0].DateTravail" />
                </td>
                <td>
                @Model[0].DateTravail.ToShortDateString()
                </td>
    </tr>
    </table>
    Tu refais ensuite ton même tableau sans les deux premières colonnes. Sinon tu peux aussi envoyer à ta page deux objets : le premier qui contient le nom et la date de travail, et le deuxième qui contient ta liste d'objet sans ces deux propriétés.
    La Triforce du développement : Fainéantise, Curiosité et Imagination.

  5. #5
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 119
    Points : 203
    Points
    203
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Comme C est du MVC a mon avis pour les bonne pratique il serait bien de creer un modele pour chaque VUE .Dans ton cas tu veux changer l affichage donc la vue donc commence par creer un model adapté

    je te propose un model de ce style

    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 MonNouveauModele{
     public string Nom {get;set}
     public intNomID{get;set}
    public Datetime DateTravail{get;set}
     public IEnumerable<LesDonnee> MesDonnees{get;set}
     
    }
    public class LesDonnee{
     public Datetime Debut{get;set}
    public Datetime  Fin{get;set}
    public Decimal Valeur{get;set}
     public  Modalite LaModalite{get;set}
     
    }
    public enum Modalite{
      Fix,
     Variable
    }
    une fois le modele cree tu passes a la VUE


    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
     @model IEnumarable<MonNouveauModele>
    @{
        ViewBag.Title = "Saisiedesheures";
    }
     
     
    <h2>Tableau de saisie des horaires de la centrale</h2>
    @using (Html.BeginForm("RECUP", "SaisieHoraires", FormMethod.Post))
    {
     
    @foreach (var monModel in Model)
            {
     
     
        <table class="table">
    <caption>
    monModel.Nom
     <input type="hidden" name="Heuresselections[@i].NomID" value="@monModel.NomID" />
       <input type="hidden" name="Heuresselections[@i].DateTravail" value="@monModel.DateTravail" />
    </caption>
            <tr>
     
     
                <th>
                    Début
                </th>
                <th>
                    Fin
                </th>
                <th> 
                    Valeur
                </th>
                <th>
                    Modalité
                </th>
            </tr>
     
            @foreach (donnee in monModel.MesDonnees)
            {
                <tr>
     
                    <td>
                        <input type="text" name="Heuresselections[@i].Debut" style="width:50px;height:20px" value="@donnee .Debut" />
                    </td>
                    <td>
                        <input type="text" name="Heuresselections[@i].Fin" style="width:50px;height:20px"  value="@donnee .Fin" />
                    </td>
                    <td>
                        <input type="text" name="Heuresselections[@i].Valeur" style="width:50px;height:20px"  value="@donnee .Valeur" />
                    </td>
                    <td>
                        <input type="text" name="Heuresselections[@i].Modalite" style="width:50px;height:20px"  value="@donnee .Modalite" />
                    </td>
                </tr>
            }
     
        </table>
     
        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                    <input type="submit" value="Valider la saisie" class="btn btn-default" />
    </div>
        </div>
     
        <div>
            @Html.ActionLink("Retourner aux choix précédents", "Selectiondesheures")
        </div>
    }
     
    }
    Et dans ton coltroller biensur n oublies pas de charger les donnees et de mapper (transformer)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
      public ActionResult cetteAction(){
       var lesVraiDonnee=maSource.Get();
        IEnumerable<MonNouveauModele>monViewModel=MafonctionQuiconvertiLesVraiDonneeENMonNouveauModele(lesVraiDonnee);
     
      return View(monViewModel);
    }

  6. #6
    Membre à l'essai
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Octobre 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant E-Business
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2013
    Messages : 33
    Points : 21
    Points
    21
    Par défaut
    Désolé pour ma réponse si tardive.

    J'ai utilisé la réponse de Momoth qui me paraissait la plus facile dans mon cas bien que je comprend bien l'intérêt que présente la méthode décrite par Lakhadr.

    Merci beaucoup pour votre aide,

    ptite-ratte

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/09/2010, 14h55
  2. Réponses: 10
    Dernier message: 16/05/2010, 00h41
  3. Réponses: 6
    Dernier message: 01/05/2009, 16h35
  4. Réponses: 3
    Dernier message: 04/03/2009, 11h35
  5. [MySQL] Modification d'une seule valeur dans 2 champs
    Par Equinoxe5 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/01/2009, 15h13

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