Bonjour à tous,

J'ai besoin de récupérer un tableau, de l'afficher, et de proposer un lien à chaque ligne pour l'éditer.

Voici le code du contrôleur (il me semble correct)


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
            Dim listMeet = New List(Of meeting)
            listMeet = (From d In db.meeting
                       Where d.FK_meet_contact = id
                       Select d).ToList()
            ViewBag.ListeMeeting = listMeet
Dans la vue, j'ai ceci en script de début de page
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
@Code
    ViewData("Title") = "Details"
 
    Dim grid = New WebGrid(ViewBag.listeMeeting, selectionFieldName:="SelectedRow")
    Dim item As ListItem
End Code
Honnêtement, je ne sais pas à quoi peut me servir le "selectionFieldName", ni pourquoi j'ai mis l'objet Item en type "ListItem".
Et voici le webgrid
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
<fieldset>
    <legend>Meetings</legend>
        @Html.ActionLink("Nouveau Meeting", "Create", "Meeting")
         @grid.GetHtml(columns:=grid.Columns(
             grid.Column("compteRendu", "Compte Rendu"),
             grid.Column("date", "date", canSort:=True),
             grid.Column(columnName:="edit", format:=(item) => Html.ActionLink("Edit", "Meeting", new {id = item.Id})))
         )
 
</fieldset>
Avec ce code que je ne comprends pas trop (juste la ligne du lien que je gère pas), j'obtiens un message d'erreur :
Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: BC30201: Expression expected.[/FONT]
Line 122: grid.Column(columnName:="edit", format:=(item) => Html.ActionLink("Edit", "Meeting", new {id = item.Id})))

Donc bon... J'ai compris qu'il me manquait un truc... Mais quoi?

Sinon... J'apprends seul le langage... Et le peu de résultats que j'obtiens comparativement au temps passé me démotive de plus en plus. Ce que j'ai mis plus d'un mois à développer, je crois que je serais capable de le refaire en 1 jour ou 2... Un avis là dessus? Normal que je sois si lent à apprendre le .NET?



édit : si besoin est, voici les classes complètes :
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
 
@ModelType MvcApplication4.contact
 
@Code
    ViewData("Title") = "Details"
 
    Dim grid = New WebGrid(ViewBag.listeMeeting, selectionFieldName:="SelectedRow")
    Dim item As ListItem
End Code
 
<h2>Details</h2>
 
<fieldset>
    <legend>contact</legend>
    <div class="display-label">client</div>
    <div class="display-field">
        @Html.DisplayFor(Function(model) model.client.nomCompteClient)
    </div>
 
    <div class="display-label">civilite</div>
    <div class="display-field">
        @Html.DisplayFor(Function(model) model.civilite)
    </div>
 
    <div class="display-label">nom</div>
    <div class="display-field">
        @Html.DisplayFor(Function(model) model.nom)
    </div>
 
    <div class="display-label">prenom</div>
    <div class="display-field">
        @Html.DisplayFor(Function(model) model.prenom)
    </div>
 
    <div class="display-label">dateNaissance</div>
    <div class="display-field">
        @Html.DisplayFor(Function(model) model.dateNaissance)
    </div>
 
    <div class="display-label">telephone</div>
    <div class="display-field">
        @Html.DisplayFor(Function(model) model.telephone)
    </div>
 
    <div class="display-label">mobile</div>
    <div class="display-field">
        @Html.DisplayFor(Function(model) model.mobile)
    </div>
 
    <div class="display-label">mail</div>
    <div class="display-field">
        @Html.DisplayFor(Function(model) model.mail)
    </div>
 
    <div class="display-label">adresse</div>
    <div class="multiline">
        @Html.TextAreaFor(Function(model) model.adresse)
    </div>
 
    <div class="display-label">typeCompte</div>
    <div class="display-field">
        @Html.DisplayFor(Function(model) model.typeCompte)
    </div>
 
    <div class="display-label">titre</div>
    <div class="display-field">
        @Html.DisplayFor(Function(model) model.titre)
    </div>
 
    <div class="display-label">departement</div>
    <div class="display-field">
        @Html.DisplayFor(Function(model) model.departement)
    </div>
 
    <div class="display-label">qualifications</div>
    <div class="display-field">
        @Html.DisplayFor(Function(model) model.qualifications)
    </div>
 
    <div class="display-label">langue1</div>
    <div class="display-field">
        @Html.DisplayFor(Function(model) model.langue1)
    </div>
 
    <div class="display-label">langue2</div>
    <div class="display-field">
        @Html.DisplayFor(Function(model) model.langue2)
    </div>
 
    <div class="display-label">langue3</div>
    <div class="display-field">
        @Html.DisplayFor(Function(model) model.langue3)
    </div>
 
    <div class="display-label">langue4</div>
    <div class="display-field">
        @Html.DisplayFor(Function(model) model.langue4)
    </div>
 
    <div class="display-label">langue5</div>
    <div class="display-field">
        @Html.DisplayFor(Function(model) model.langue5)
    </div>
 
    <div class="display-label">dateDebCarriere</div>
    <div class="display-field">
        @Html.DisplayFor(Function(model) model.dateDebCarriere)
    </div>
 
    <div class="display-label">salaire</div>
    <div class="display-field">
        @Html.DisplayFor(Function(model) model.salaire)
    </div>
</fieldset>
 
 
<fieldset>
    <legend>Meetings</legend>
        @Html.ActionLink("Nouveau Meeting", "Create", "Meeting")
         @grid.GetHtml(columns:=grid.Columns(
             grid.Column("compteRendu", "Compte Rendu"),
             grid.Column("date", "date", canSort:=True),
             grid.Column(columnName:="edit", format:=(item) => Html.ActionLink("Edit", "Meeting", new {id = item.Id})))
         )
 
 
 
</fieldset>
 
 
 
 
<p>
 
    @Html.ActionLink("Edit", "Edit", New With {.id = Model.idContact}) |
    @Html.ActionLink("Back to List", "Index")
</p>
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
 
Imports System.Data.Entity
Imports MvcApplication4
 
 
 
Namespace MvcApplication4
    Public Class ContactsController
        Inherits System.Web.Mvc.Controller
 
        Private db As schema_crmEntities = New schema_crmEntities
 
        '
        ' GET: /Contacts/
 
        Function Index() As ViewResult
            Dim contact = db.contact.Include("client")
            Return View(contact.ToList())
        End Function
 
        '
        ' GET: /Contacts/Details/5
 
        Function Details(id As Integer) As ActionResult
            Dim contact As contact = db.contact.Single(Function(c) c.idContact = id)
            Dim listMeet = New List(Of meeting)
            listMeet = (From d In db.meeting
                       Where d.FK_meet_contact = id
                       Select d).ToList()
            ViewBag.ListeMeeting = listMeet
 
 
            Return View(contact)
        End Function
 
        '
        ' GET: /Contacts/Create
 
        Function Create As ViewResult
            ViewBag.FK_contact_client = New SelectList(db.client, "idClient", "nomCompteClient")
            return View()
        End Function
 
        '
        ' POST: /Contacts/Create
 
        <HttpPost()>
        Function Create(contact As contact) As ActionResult
            If ModelState.IsValid Then
                db.contact.AddObject(contact)
                db.SaveChanges()
                Return RedirectToAction("Index")
            End If
 
            ViewBag.FK_contact_client = New SelectList(db.client, "idClient", "nomCompteClient", contact.FK_contact_client)
            Return View(contact)
        End Function
 
        '
        ' GET: /Contacts/Edit/5
 
        Function Edit(id As Integer) As ViewResult
            Dim contact As contact = db.contact.Single(Function(c) c.idContact = id)
            ViewBag.FK_contact_client = New SelectList(db.client, "idClient", "nomCompteClient", contact.FK_contact_client)
            Return View(contact)
        End Function
 
        '
        ' POST: /Contacts/Edit/5
 
        <HttpPost()>
        Function Edit(contact As contact) As ActionResult
            If ModelState.IsValid Then
                db.contact.Attach(contact)
                db.ObjectStateManager.ChangeObjectState(contact, EntityState.Modified)
                db.SaveChanges()
                Return RedirectToAction("Index")
            End If
 
            ViewBag.FK_contact_client = New SelectList(db.client, "idClient", "nomCompteClient", contact.FK_contact_client)
            Return View(contact)
        End Function
 
        '
        ' GET: /Contacts/Delete/5
 
        Function Delete(id As Integer) As ViewResult
            Dim contact As contact = db.contact.Single(Function(c) c.idContact = id)
            Return View(contact)
        End Function
 
        '
        ' POST: /Contacts/Delete/5
 
        <HttpPost()>
        <ActionName("Delete")>
        Function DeleteConfirmed(id As Integer) As RedirectToRouteResult
            Dim contact As contact = db.contact.Single(Function(c) c.idContact = id)
            db.contact.DeleteObject(contact)
            db.SaveChanges()
            Return RedirectToAction("Index")
        End Function
 
        Protected Overrides Sub Dispose(disposing As Boolean)
            db.Dispose()
            MyBase.Dispose(disposing)
        End Sub
 
    End Class
End Namespace