Bonjour,

J'ai une listbox liée à un datasource avec l'id en ValueField :

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>
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
 
<SelectParameters>
    <asp:ControlParameter ControlID="ListBox1" Name="Chrono" 
    PropertyName="SelectedValue" Type="Int32" />
</SelectParameters>
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.

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 !!

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();
    }
}
merci d'avance pour toute piste !!