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)
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 Dim listMeet = New List(Of meeting) listMeet = (From d In db.meeting Where d.FK_meet_contact = id Select d).ToList() ViewBag.ListeMeeting = listMeet
Et voici le webgrid
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".
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 :
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>
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
Partager