Bonjour,
Alors je sais que ce que j'essaye de faire est un peu à l'opposer de ce pourquoi les composants était fait, mais bon passons.
Alors j'ai un détails view qui a un objectDataSource qui récupère un objet contenant des champs simple ainsi qu'une collection d'un autre objet.
j'ai donc ajouter un templateField dansmon detailsView dans lequel j'ai mis mon gridView ou je Bind le dataSource (pas le dataSourceId) à la dite collection.
voila ce que ca donne :
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 <asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" CellPadding="4" DataSourceID="Ordonnance" ForeColor="#333333" GridLines="None" Height="50px"> <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <CommandRowStyle BackColor="#E2DED6" Font-Bold="True" /> <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> <FieldHeaderStyle BackColor="#E9ECF1" Font-Bold="True" /> <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> <Fields> <asp:BoundField DataField="Cle" HeaderText="Cle" SortExpression="Cle" /> <asp:BoundField DataField="Creation" HeaderText="Creation" SortExpression="Creation" /> <asp:BoundField DataField="Etat" HeaderText="Etat" SortExpression="Etat" /> <asp:BoundField DataField="Patient" HeaderText="Patient" SortExpression="Patient" /> <asp:TemplateField HeaderText="Compar_Lignes" SortExpression="Compar_Lignes"> <EditItemTemplate> <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Compar_Lignes") %>'></asp:TextBox> </EditItemTemplate> <InsertItemTemplate> <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Compar_Lignes") %>'></asp:TextBox> </InsertItemTemplate> <ItemTemplate> <asp:GridView ID="GridView1" runat="server" AllowSorting="true" AutoGenerateColumns="False" CellPadding="4" DataSource='<%# Bind("Compar_Lignes") %>' ForeColor="#333333" GridLines="None"> <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> <Columns> <asp:BoundField DataField="CodeProduit" HeaderText="CodeProduit" SortExpression="CodeProduit" /> <asp:BoundField DataField="Quantite" HeaderText="Quantite" SortExpression="Quantite" /> </Columns> <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /> <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <EditRowStyle BackColor="#999999" /> <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> </asp:GridView> </ItemTemplate> </asp:TemplateField> </Fields> <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <EditRowStyle BackColor="#999999" /> <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> </asp:DetailsView> <asp:ObjectDataSource ID="Ordonnance" runat="server" SelectMethod="LoadByCle" TypeName="Compar" OldValuesParameterFormatString="original_{0}"> <SelectParameters> <asp:QueryStringParameter Name="pCle" QueryStringField="Cle" Type="String" /> </SelectParameters> </asp:ObjectDataSource>
Pour l'affichage ca fonctionne nickel, maintenant je voudrais pimenté tous cela en ajoutant premièrement la possibilité de trier puis ensuite de modifier et d'insérer. et la bah ca marche pas,par exemple quand j'essaye de trier il se met juste à mouliner.
Quand je regarde au moment de l'évènement sorting par exemple je vois que le gridView est encore vide et je me demande si ca ne joue pas sur le trie car sinon le "e.SortExpression" et le "e.SortDirection" de l'évenement sont bien renseigné.
si quelqu'un pouvait me dire déjà si ce que je veux faire est possible et si oui, ou est ce que j'ai rate quelque chose.
j'espère avoir été clair n'hésitez pas à demander des compléments
Partager