Bonjour a tous,
Pour une web application que je developpe, j'ai besoin de créer plusieures listes déroulantes imbriquées dont les données se trouve dans différentes tables SQL.
Par exemple, j'ai les tables PAYS / REGIONS / DEPARTEMENT et je voudrais que lorsque je change la liste PAYS, la liste région et département change; que lorsque je change la liste région, la liste département change etc ...
J'ai réussis à linker la liste PAYS et REGIONS ensemble grace à cette technique mais impossible d'en imbriqué une 3eme, j'ai une erreur logique "es méthodes de liaison de données telles que Eval(), XPath() et Bind() peuvent uniquement être utilisées dans le contexte d'un contrôle lié aux données. "
Voici mon code source pour 2 listes imbriquées :
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 <%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site.Master" CodeBehind="Liste.aspx.vb" Inherits="Listes_imbriquees.WebForm1" %> <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> <asp:SqlDataSource ID="SqlAnnonces" runat="server" ConnectionString="<%$ ConnectionStrings:csAffairesSansRisque %>" SelectCommand="SELECT * FROM [country]" > </asp:SqlDataSource> <asp:FormView ID="FormView1" runat="server" DataKeyNames="Ann_Id" DataSourceID="SqlAnnonces" DefaultMode="Insert" OnItemInserting="FormView1_ItemInserting"> <InsertItemTemplate> <asp:SqlDataSource ID="SqlLstRubriques" runat="server" ConnectionString="<%$ ConnectionStrings:csAffairesSansRisque %>" SelectCommand="SELECT * FROM [Country]" CacheDuration="200" EnableCaching="True"></asp:SqlDataSource> <asp:Label ID="lblCountry" AssociatedControlID="ddlRubriques" runat="server" Text="Country : "></asp:Label> <asp:DropDownList ID="ddlRubriques" runat="server" AutoPostBack="True" DataSourceID="SqlLstRubriques" DataTextField="name_country" DataValueField="id_country" SelectedValue='<%# Bind("id_country") %>'> </asp:DropDownList> <br /> <br /> <asp:SqlDataSource ID="SqlLstCategories" runat="server" ConnectionString="<%$ ConnectionStrings:csAffairesSansRisque %>" SelectCommand="SELECT * FROM [building] WHERE ([id_country] = @id_country)"> <SelectParameters> <asp:ControlParameter ControlID="ddlRubriques" Name="id_country" PropertyName="SelectedValue" /> </SelectParameters> </asp:SqlDataSource> <asp:Label ID="lblBuilding" AssociatedControlID="ddlCategories" runat="server" Text="Building : "></asp:Label> <asp:DropDownList ID="ddlCategories" runat="server" DataSourceID="SqlLstCategories" DataTextField="name_building" DataValueField="id_building" SelectedValue='<%# Bind("id_building") %>'> </asp:DropDownList> <br /> <br /> <br /> <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" /> <br /> <br /> </InsertItemTemplate> </asp:FormView> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> </asp:Content>
Quelqu'un aurait-il une solution à ce problème ou un exemple de code source avec plusieurs listes imbriquées ?
Merci d'avance de votre aide.
DeWaRs
Partager