Bonjour,
(Ca n'aura pas tardé pour la question suivante).
J'ai une page aspx avec une GridView dans laquelle je peux éditer mes lignes.
Voici le code de ma GridView :
Et mon EntityDataSource
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 <asp:GridView ID="IncidentsGridView" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="I_ID" DataSourceID="IncidentsEntityDataSource" CellPadding="4" ForeColor="#333333" GridLines="None" onrowupdating="IncidentsGridView_RowUpdating" PageSize="7" > <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> <Columns> <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" DeleteText="Supprimer" EditText="Modifier" /> <asp:BoundField DataField="I_ID" HeaderText="ID" ReadOnly="True" SortExpression="I_ID" ItemStyle-Wrap="False" ItemStyle-HorizontalAlign="Center" > <ItemStyle HorizontalAlign="Center" Wrap="False"></ItemStyle> </asp:BoundField> <asp:TemplateField HeaderText="Durée de l'incident"> <ItemTemplate> <asp:Label ID="DurationLabel" runat="server" Text='<%# Eval("I_DURATION") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Site" SortExpression="SITE.S_SITE" ItemStyle-Wrap="False"> <EditItemTemplate> <asp:DropDownList ID="SiteDropDownList" runat="server" DataSourceID="SiteEntityDataSource" DataTextField="S_SITE" DataValueField="S_ID" oninit="SiteDropDownList_Init" SelectedValue='<%# Eval("I_SITE_ID") %>'> </asp:DropDownList> <asp:EntityDataSource ID="SiteEntityDataSource" runat="server" ConnectionString="name=RFCKPIEntities" DefaultContainerName="RFCKPIEntities" EnableFlattening="False" EntitySetName="SITE" Select="it.[S_ID], it.[S_SITE]"> </asp:EntityDataSource> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# Eval("SITE.S_SITE") %>'></asp:Label> </ItemTemplate> <ItemStyle Wrap="False"></ItemStyle> </asp:TemplateField> </Columns> <EditRowStyle BackColor="#999999" /> <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <HeaderStyle BackColor="#1B7F75" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="#1B7F75" ForeColor="White" HorizontalAlign="Center" /> <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /> <SortedAscendingCellStyle BackColor="#E9E7E2" /> <SortedAscendingHeaderStyle BackColor="#506C8C" /> <SortedDescendingCellStyle BackColor="#FFFDF8" /> <SortedDescendingHeaderStyle BackColor="#6F8DAE" /> </asp:GridView>
Donc en résumé, j'ai une gridview avec les données d'une table (INCIDENT) qui en mode édition possède une liste déroulante allant rechercher ses valeurs dans une autre table (SITE). Dans la DB, ma table INCIDENT a donc une clef étrangère vers SITE.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <asp:EntityDataSource ID="IncidentsEntityDataSource" runat="server" ConnectionString="name=RFCKPIEntities" DefaultContainerName="RFCKPIEntities" EnableDelete="True" EnableFlattening="False" EnableUpdate="True" EntitySetName="INCIDENTS" Include="SITE"> </asp:EntityDataSource>
Ce code fonctionne très bien lorsque la valeur de site est remplie mais si j'ai null, j'obtiens l'erreur suivante quand je clique sur le bouton MODIFIER :
'SiteDropDownList' a un SelectedValue qui n'est pas valide, car il n'existe pas dans la liste des éléments.
Nom du paramètre : value
Pourriez-vous m'aider?
Partager