Bonjour,
j'ai besoin de faire un "If" du côté aspx pour afficher un composant ou un autre.
Je m'explique :
- j'ai 1 classe mère et 2 classes enfants(pour le moment)
- dans une des classe enfant j'ai un list(Of)
l'affichage doit se matérialiser ainsi :
J'ai une grille (telerik) binder sur un list(Of Classe Mère). dedans j'ai des objets des 2 types d'enfants.
j'ai une colonne de type GridTemplateColumn dans laquelle j'avais un repeater car j'avais uniquement à la base l'enfant qui contenait un list(Of).
Maintenant je dois selon le cas avoir le repeater ou un autre composant si j'ai l'autre type d'enfant.
J'avais tenté ainsi, mais ce fût un échec (cf plus bas) :
j'avais mis un placeholder qui contenait le repeateur et un autre placeholder pour l'autre composant et j'avais pensé quand indiquant sur le visible du placeholder "True ou False" selon si je suis tel objet ou non j'aurais eu le composant. mais pas de chance
Si cela marche bien en mettant juste dans le placeholder "Text Cas1" et dans l'autre "Text Cas2", dès que je mets mon repeater j'ai l'erreur sur le Datasource de ce dernier car il ne retrouve pas la propriété pour l'enfant qui ne l'as pas... , je pensais que le fait du visible à false il n'y aurait pas eu de traitement.
Comment procéder ?
merci de votre aide.as
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 ...<ItemTemplate> <asp:PlaceHolder runat="server" ID="ph1" Visible='<%# Eval("Type") = TypeJournaux.Normal %>'> <asp:Repeater runat="server" ID="rpt" DataSource='<%# Eval("CommuneProgs") %>'> <ItemTemplate> <div> <span><%# String.Format("{0} - {1}", Eval("Commune"), Eval("Programme")) %></span> </div> </ItemTemplate> </asp:Repeater> <asp:PlaceHolder runat="server" ID="PlaceHolder1" Visible='<%# Eval("Type") = TypeJournaux.AbsenceMOE %>'> TEXT2 </asp:PlaceHolder> ...</ItemTemplate>
Partager