Afficher un control avec conditions

Résolu
Signaler
Messages postés
283
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010
-
Messages postés
283
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010
-
Salut a tous

je voulais savoir s'il etait possible d'afficher ou d'occulter des controls directement dans la page aspx

un truc du genre

if(condition)
   
else
   

merci

12 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Membre
Dernière intervention
13 octobre 2010
29
il y a peut etre un autre événement que itemcreated, itemdatabound ? meme si itemcreated me semble plus logique ... :)

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL
Messages postés
283
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010
3
et ben en fait il faut passer par l'evenement itemdatabound pour avoir accès au control de l'item

et ca marche tres tres bien

En tout cas un grand merci a toi cyril

PS: juste une autre petite question. Lorsque j'affiche 1 seul element dans mon ReorderList le CollapsidePanel fonctionne tres bien. Mias lorsque j'en ai 2(ou +) je n'arrive plus a ouvrir le panel. Est ce que c'est du au fait que tout mes CollapsidePanel qui seront créés porte le meme nom?????
Messages postés
27
Date d'inscription
lundi 2 mai 2005
Statut
Membre
Dernière intervention
3 janvier 2008

<%
if(condition)
{
%>
   
<%
}
else
{
%>
   
<%
}
%>
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Membre
Dernière intervention
13 octobre 2010
29
beurk !!! c'est le meilleur moyen pour avoir des problèmes de viewstate & co


dans le page_load

lbl.Visible = condition;
textbox1.Visible = !condition;





<hr />
Cyril - MSP - MCPD ASP.net & MCTS SQL
Messages postés
27
Date d'inscription
lundi 2 mai 2005
Statut
Membre
Dernière intervention
3 janvier 2008

on est d'accord mais dans certains cas, quand on est coincé, ça peut dépanner...
et puis je viens du php ...
Messages postés
283
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010
3
salut

merci pour vos réponses

Cyril : En fait ta méthode est la meilleure mais je pense que je ne peux pas l'utiliser(enfin je ne suis pas sur)
Je t'expose mon problème. J'utilise un control "REORDERLIST" qui est databindé à une source sqlserver.
Dans chaque ITEM de mon REORDERLIST j'ai un COLLAPSIDEPANEL afin d'afficher ou de masquer les details de chaque ITEM.
Mon problème est que en fonction de l'ITEM je souhaite afficher soit une image soit du texte. J'espere avoir été clair voici mon code pour plus de précision





<hr />


               



               
                    <ContentTemplate>
               
                    
               
                       
                   
                   
                   
               
                                 
                
                
                
                <cc1:ReorderList ID= "ReorderList1" runat="server" DataKeyField="SpotID"
                 DataSourceID="objSpot" DragHandleAlignment="left" SortOrderField="Ordre" AllowReorder="true">
                
                
                     ' />
                     ' />
                    

                       
                           

                               
What is ASP.NET AJAX?

                               

                                    (Show Details...)
                               

                               

                                   
                               

                           

                       

<------------------c'est ici que se trouve le probleme
                       
                           

                           
                   if(condition)
                               
                  else

                                dfgsdfgsdfgsdfgsdfgsdfg
                           

                       

--------------------------------->

                   




                    <cc1:CollapsiblePanelExtender ID ="cpeDemo" runat="Server"
                        TargetControlID="Panel1"
                        ExpandControlID="Panel2"
                        CollapseControlID="Panel2"
                        Collapsed="True"
                        TextLabelID="Label1"
                        ImageControlID="Image1"   
                        ExpandedText="(Hide Details...)"
                        CollapsedText="(Show Details...)"
                        ExpandedImage="~/images/collapse_blue.jpg"
                        CollapsedImage="~/images/expand_blue.jpg"
                        SuppressPostBack="true"
                        SkinID="CollapsiblePanelDemo" />
                
                
                   
                
                
                </cc1:ReorderList>
                    </ContentTemplate>
               
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Membre
Dernière intervention
13 octobre 2010
29
ou est le problème ?

tu t'abonnes à l'event itemcreated du reorderlist puis tu fais un e.item.findControl("image2").Visible= condition;

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL
Messages postés
283
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010
3
en faisait ça :

e.Item.FindControl("image2").Visible = false;

j'obtiens l'erreur suivante :

La référence d'objet n'est pas définie à une instance d'un objet.
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Membre
Dernière intervention
13 octobre 2010
29
Je connais pas le reorderlist (enfin pas par coeur comme le repeater :p) l'évenement itemcreated est declenché pour chaque item, peut etre qu'il y a des items "header" dans ce cas si c'est comme le repeater tu trouveras une variable e.Item.ItemType, il faut d'abord faire un test dessus pour vérifier que tu es bien sur un item et pas un header. Sinon le plus simple est de regarder en debug ce qui se trouve dans e.item

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL
Messages postés
283
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010
3
j'ai essayer de faire ca

bool test = e.Item.HasControl();

il me renvoi false
Messages postés
90
Date d'inscription
lundi 30 juin 2003
Statut
Membre
Dernière intervention
21 février 2008

Regarde quel est le type de e.Item quand test est faux.
Messages postés
283
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010
3
le type de e.item est "item".

Cyril : j'ai regarder ce qui se trouve dans le e.item et ca donne ca 

               - DataItem
               - DataItemindex
               - DisplayIndex
               - IsAddItem
               - ItemIndex
               - ItemType

il y a aussi un System.web.UI.Controls mais il m'indique qu'il n'y a aucun control (count = 0)