Bonjour,
Je suis actuellement en train de developper un portail de suivi d'incidents en ASP.NET (VB.NET) avec une base ACCESS de test.
Je bloque sur un point.
Je m'explique :
J'ai 2 DropDownList. Une "DropDownListPays" et une "DropDownListSite".
Un pays peut contenir plusieurs sites. J'aimerais que lorsque je sélectionne un pays dans la DDL Pays, seulement les sites qui se trouvent dans le Pays selectionné apparaissent dans la DDL Site sans pour autant recharger toute la page.
Pour la partie rechargement partiel de la page j'utilise un updatepanel et un trigger dans le .ASPX (cette partie semble marcher convenablement ).
Pour la partie remplissage de la DDL Site en fonction de la DDL Pays j'utilise des dataset dans le .ASPX.VB
code :
.ASPX
.ASPX.VB
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 <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Incidents.aspx.vb" Inherits="Incidents" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Incidents</title> </head> <body> <form id="formIncidents" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server" /> <asp:Label ID="LabelPays" runat="server" Text="Pays :"></asp:Label> <asp:DropDownList ID="DropDownListPays" runat="server" AutoPostBack="true"></asp:DropDownList></td> <asp:Label ID="LabelSite" runat="server" Text="Site :"></asp:Label> <asp:UpdatePanel ID="UpdatePanelDDLSite" UpdateMode="Conditional" runat="server"> <Triggers> <asp:AsyncPostBackTrigger controlid="DropDownListPays" eventname="SelectedIndexChanged" /> </Triggers> <ContentTemplate> <asp:DropDownList ID="DropDownListSite" runat="server"></asp:DropDownList> </ContentTemplate> </asp:UpdatePanel> </form> </body> </html>
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 Imports System.Data Imports System.Data.OleDb Partial Class Incidents Inherits System.Web.UI.Page Dim MyConnection As System.Data.OleDb.OleDbConnection Dim MyCommand As New OleDbCommand Dim MyDataSet As DataSet Dim MyDataAdapter As OleDbDataAdapter Dim Requete As String Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load MyConnection = New OleDbConnection() MyConnection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\SOCIETE\Access\AccessPortail.accdb;Persist Security Info=True" MyConnection.Open() Requete = "SELECT DISTINCT Pays FROM Incidents ORDER BY Pays ASC" MyCommand = New OleDbCommand(Requete, MyConnection) MyDataAdapter = New OleDbDataAdapter(MyCommand) MyDataSet = New DataSet MyDataAdapter.Fill(MyDataSet, "Pays") DropDownListPays.DataSource = MyDataSet DropDownListPays.DataTextField = "Pays" DropDownListPays.DataValueField = "Pays" DropDownListPays.DataBind() MyDataSet.Clear() MyConnection.Close() End Sub Protected Sub DropDownListPays_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownListPays.SelectedIndexChanged MyConnection = New OleDbConnection() MyConnection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\SOCIETE\Access\AccessPortail.accdb;Persist Security Info=True" MyConnection.Open() Requete = "SELECT DISTINCT Site FROM Incidents " Requete += "WHERE Pays= '" + DropDownListPays.SelectedValue.ToString() + "' " Requete += "ORDER BY Site ASC" MyCommand = New OleDbCommand(Requete, MyConnection) MyDataAdapter = New OleDbDataAdapter(MyCommand) MyDataSet = New DataSet MyDataAdapter.Fill(MyDataSet, "Site") DropDownListSite.DataSource = MyDataSet DropDownListSite.DataTextField = "Site" DropDownListSite.DataBind() MyDataSet.Clear() MyConnection.Close() End Sub End Class
Ma partie Remplissage de DDL Site en fonction de DDL Pays ne fonctionnne pas..
Ai-je le droit d'utilise les même DataTextField et DataValueField lors de mon remplissage de DDL Pays ?
Auriez vous quelques idées ?
Merci d'avance,
Bien cordialement,
Tan
Partager