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
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 <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"> </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>
Explication:
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
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![]()
Partager