Bonjour tout le monde.
Maintenant que j'ai gouté au Repeater, je trouve ça génial, du coup, je fonce.
Là, je suis paumé parmi tout les Items et les Controls, bref, les deux collections n'ont pas l'air trés facile d'accés.
A la fin du topic, y a mon code.
Je voudrais que mon bouton appraisse selon une condition. Dans ma DataSource j'ai un champ qui contient soit 1 soit 0. Et donc si c'est 0 pas de bouton, si c'est 1 y a un bouton. Facile jusque là.
J'ai plongé dans les collections Items et Controls pour tenter d'identifier le bouton, là où il est, mais visiblement je m'y prends mal.
Alors, si j'ai bien compris et c'est là que j'ai besoins d'aide pour être sûr, la collection Items c'est les données, enfin, les éléments HTML avec les données dedans, el tout malaxer par le Repeater poura voir une bonne forme. Donc ce n'est pas par là que je vais pouvoir lui dire d'afficher ou pas le bouton ?
La collections Controls c'est les Contrôles que j'ai placé dans l'ItemTemplate, côté HTML. Sauf que là, lrosque je plonge dedans, y a un moment où il ne me donne pas accés au bouton.
Alors plusieurs pistes mesont venue en tête, mais vu qu'il y pas mal de code à faire pour les mettre en place, je préfère demander des vis avant.
Faut il que je passe par un Itemplate sur mesure pour juste faire une bascule sur l'affichage du bouton ?
Est ce qu'il n'y a pas un moyen plus rapide avec un FindControl pour trouver ce bon dieu de bouton dans tout ce fatras ?
Enfin, point le plus dlicat : à quel moment je dois faire tout ça ? Visiblement si je le fait avant le DataBind, y a rien dans le Repeater.
Voyez vous mon soucis et pouvez vous m'aider à comprendre ?
Mon code HTML :
Mon CodeBehind
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <asp:Repeater ID="repFAQ" runat="server"> <ItemTemplate> <asp:Table ID="tbl" runat="server"> <asp:TableRow> <asp:TableCell><asp:Button ID="btn" runat="server" Text="Modifier" OnClick="ModifierFAQ" CommandArgument='<%#DataBinder.Eval(Container.DataItem, "IdFaq")%>' /></asp:TableCell> <asp:TableCell><%#DataBinder.Eval(Container.DataItem, "Question")%></asp:TableCell> <asp:TableCell><%#DataBinder.Eval(Container.DataItem, "Ordre")%></asp:TableCell> </asp:TableRow> <asp:TableRow> <asp:TableCell ColumnSpan="3"><%#DataBinder.Eval(Container.DataItem, "Reponse")%></asp:TableCell> </asp:TableRow> </asp:Table> </ItemTemplate> </asp:Repeater>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Dim dt As DataTable = New DManager("DataDev").RetournerTable("SELECT * FROM FAQ WHERE UserId IN ('" & Session("SES_UserIdStr") & "','" & Session("SES_ApplicationStr") & "')") With repFAQ .DataSource = dt .DataBind() End With
Partager