[Listbox] [Repeater] rafraichir la listbox sur modifications extérieures
Bonjour,
J'ai une listbox liée à un datasource avec l'id en ValueField :
Code:
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:
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:
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 !!