Bonjour,
J'ai une listbox liée à un datasource avec l'id en ValueField :
J'ai ensuite un SqlDataSource2 avec un paramètre pour le Select :
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 <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand=" SELECT Famille.Chrono, Famille.Ordre, Famille.Disponibilite, Famille.Image, ISNULL(Lien_Langue.LibC, 'Pas de libelle en fr') AS LibC FROM Famille LEFT OUTER JOIN Lien_Langue ON Famille.Chrono = Lien_Langue.IdFamille WHERE (Lien_Langue.IdLangue IN (SELECT Chrono FROM Langue WHERE (LabelC = 'fr'))) UNION SELECT Chrono, Ordre, Disponibilite, Image, 'Pas de libelle' AS LibC FROM Famille AS Famille_1 WHERE (Chrono NOT IN (SELECT IdFamille FROM Lien_Langue AS Lien_Langue_1 WHERE (IdFamille IN (SELECT Chrono FROM Famille AS Famille_2))))"> </asp:SqlDataSource> <asp:ListBox ID="ListBox1" runat="server" AutoPostBack="True" DataSourceID="SqlDataSource1" DataTextField="LibC" DataValueField="Chrono" Width="300px" ValidationGroup="GroupeDeValidation"></asp:ListBox>
bon, classique, mais mon problème c'est que si je fais un insert ou delete dans mon SqlDataSource2, qui modifie une table du SqlDataSource1, je voudrais rafraichir aussi l'affichage du DS1 dans ma listbox.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <SelectParameters> <asp:ControlParameter ControlID="ListBox1" Name="Chrono" PropertyName="SelectedValue" Type="Int32" /> </SelectParameters>
on m'a conseillé de faire un DataBind() dans le Page_Load en cas de post back mais dans ce cas, ça me dé-sélectionne ma listbox, du coup ma requête liée n'affiche rien dans ses contrôles, mais en plus ma listbox ne s'est pas rafraichie !!
merci d'avance pour toute piste !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 protected void Page_Load(object sender, EventArgs e) { if ( Page.IsPostBack ) { SqlDataSource1.DataBind(); ListBox1.DataBind(); } }
Partager