Bonjour A tous,

Voici mon problème:
J'ai deux dropdownlist dans le footer de mon Repeater . Quand je bouge le premier, j'aimerais mettre à jour le second. Mais quand je sélectionne ds le 1er c'est tous mon répéteur qui disparait !!!

Ca fait deux jour, que je cherche même avec Google et les Forums mais je ne trouve rien. Quelqu'un peut-il m'aider ?

Voici mes codes:
En premier le Code du fichier .aspx
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
67
 
<asp:Repeater ID="rptGrpAffecte" runat="server">
        <HeaderTemplate>
            <table class="TblRpt">
                <tr class="Entete" align="center">
                    <td>
                        Groupes
                    </td>
                    <td>
                        Item affecté
                    </td>
                    <td colspan="2">
                        &nbsp;
                    </td>
 
                </tr>
        </HeaderTemplate>
        <ItemTemplate>
            <tr class="Ligne" align="center">
                <td>
                    <asp:Label ID="lblGrp" runat="server" ></asp:Label>
                </td>
                <td>
                    <asp:RadioButtonList ID="lstItem" runat="server" >
                    </asp:RadioButtonList>
                </td>
                <td>
                    <asp:Button ID="btnMaj" runat="server" Text="MAJ" />
                </td>
                <td class="CellDel">
                    <asp:ImageButton ID="btnSuppr" ImageUrl="~/images/del_up.gif" runat="server" />
                </td>
            </tr>
        </ItemTemplate>
        <AlternatingItemTemplate>
            <tr class="LigneAlt" align="center">
                <td>
                    <asp:Label ID="lblGrp" runat="server" ></asp:Label>
                </td>
                <td>
                    <asp:RadioButtonList ID="lstItem" runat="server" >
                    </asp:RadioButtonList>
                </td>
                <td align="center">
                    <asp:Button ID="btnMaj" runat="server" Text="MAJ" />
                </td>
                <td class="CellDel">
                    <asp:ImageButton ID="btnSuppr" ImageUrl="~/images/del_up.gif" runat="server" />
                 </td>
            </tr>
        </AlternatingItemTemplate>
        <FooterTemplate>
        <tr class="Pied">
                <td >
                    <asp:DropDownList ID="lstGrpAdd" runat="server"  OnSelectedIndexChanged="lstGrpAdd_SelectedIndexChanged"  AutoPostBack="true">
                    </asp:DropDownList>
                </td>
                <td align="center">
                      <asp:DropDownList ID="lstItemAdd" runat="server" >
                    </asp:DropDownList>
                </td>
                <td align="center" colspan="2">
                     <asp:Button ID="btnAdd" runat="server" Text="Insérer" />
                </td>
            </tr>
            </table></FooterTemplate>
    </asp:Repeater>
Puis le Code du fichier .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
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
 
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
 
        If not Page.IsPostBack Then
            BindForm()
        End If
    End Sub
 
    Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
             rptGrpAffecte.DataBind()
    End Sub
 
    ''' <summary>
    ''' Remplissage du formulaire
    ''' </summary>
    ''' <remarks></remarks>
    Private Sub BindForm()
 
            Dim ds As DataSet
 
            'Récupérer Dataset
            ds = Shp.GetGroupeAffectes
 
            dtv = ds.Tables(0).DefaultView
            rptGrpAffecte.DataSource = dtv
 
    End Sub
 
    ''' <summary>
    ''' Remplir le répéteur
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Protected Sub rptGrpAffecte_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles rptGrpAffecte.ItemDataBound
        'Lignes répétées
        If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
            'Déclaration des variables de travail
            Dim r As Data.DataRowView
            Dim lbl As Label
            Dim lst As RadioButtonList
            Dim btnSupp As ImageButton
            Dim btnMaj As Button
 
            'Association variables de travails aux objets de la fenêtre
            r = CType(e.Item.DataItem, Data.DataRowView)
            lbl = CType(e.Item.FindControl("lblGrp"), Label)
            lst = CType(e.Item.FindControl("lstItem"), RadioButtonList)
            btnSupp = CType(e.Item.FindControl("btnSuppr"), ImageButton)
            btnMaj = CType(e.Item.FindControl("btnMaj"), Button)
 
            'Gestion du bouton supprime
            btnSupp.CommandName = "DEL"
            btnSupp.CommandArgument = r("Id").ToSting()
 
            'Gestion du bouton Mise a Jour
            btnMaj.CommandName = "MAJ"
            btnMaj.CommandArgument = r("ID").ToString
 
            'Pied du répéteur
        ElseIf e.Item.ItemType = ListItemType.Footer Then
 
            'Déclaration des variables de travail
            Dim lstGrp, lstItem As DropDownList
            Dim btn As Button
 
            'Association variables de travails aux objets de la fenêtre
            lstGrp = CType(e.Item.FindControl("lstGrpAdd"), DropDownList)
            lstItem = CType(e.Item.FindControl("lstItemAdd"), DropDownList)
            btn = CType(e.Item.FindControl("btnAdd"), Button)
 
            'Remplir la liste des Distributeurs potentiellemnt affectable
            Dim ds As DataSet = Nothing
            ds = GetDS_Groupes
 
            lstGrp.DataSource = ds
            lstGrp.DataTextField = "LibelleGrp"
            lstGrp.DataValueField = "IdGrp"
            lstGrp.DataBind()
 
            'Gestion du bouton insérer
            btn.CommandName = "INS"
 
        End If
 
    End Sub
 
    Protected Sub lstGrpAdd_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim lstIt, lstGr As DropDownList
 
        lstGr = CType(sender, DropDownList)
        lstIt = CType(sender.parent.FindControl("lstItemAdd"), DropDownList)
 
        Dim ds As DataSet = Nothing
        ds = New MOS.DAL.SocieteGroupe(CInt(lstGr.SelectedValue)).GetDS_Items
 
        lstIt.DataSource = ds
        lstIt.DataTextField = "Libelle"
        lstIt.DataValueField = "IDItem"
        lstIt.DataBind()
 
    End Sub
Explication:
Un groupe est composé de sous groupe (appelé ici Item)
Je veux affecter ses sous groupes à des personnes.
Mon Footer me sert à ajouter, alors que le corps du repeater me sert à visualiser, à modifier ou à supprimer les affectations.

Donc en premier lieu je dois sélectionner un groupe dans lstGrpAdd dans le footer. Ce qui doit permettre de mettre dans lstItemAdd les sous groupes asssociés.

J'ai vérifier sous SQL SERVER 2008 : pas de pb avec les requêtes.
Je ne comprend pourquoi quand je bouge la sélection de lstGrpAdd mon Repeater disparait !!

Merci d'avance à ceux qui auront eu le courage de lire le roman de mes malheur et surtout ceux qui pourront m'en sortir