IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Dans Repeater, remplacer booleen true et false par oui et non


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 196
    Par défaut Dans Repeater, remplacer booleen true et false par oui et non
    bonjour,
    -->J'ai un repeater avec des booleens qui renvoie false et true.
    Comment faire pour que lorsque j'affiche dans mon repeater le true soit remplacé par un oui et false par un non ?
    J'avais pensé à faire ça dans l'itemdatabound de mon repeater car d'apres la msdn

    Se produit après qu'un élément présent dans le contrôle Repeater a été lié aux données, mais avant qu'il soit rendu sur la page


    DOnc je pensais que je pouvais m'en servir et faire de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
         protected void RepeaterListeVoyage_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            Label vacances = (Label)e.Item.FindControl("Vacances");
     
            if (vacances.Text == true.ToString())
            {
                vacances.Text = "oui";
            }
     
        }
    Mais apparemment les données ne sont pas encore liées au momeent où je le fais :

    La référence d'objet n'est pas définie à une instance d'un objet.

    --> Deuxième question, quelle est la syntaxe (si c'est possible) pour faire une condition dans un repeater. Dans un repeater de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <td align="center">
                            <asp:Label ID="Vacances" value='<%# DataBinder.Eval(Container.DataItem, "ID") %>'
                             Text='<%# DataBinder.Eval(Container.DataItem, "Vacances") %>'   runat="server" ' />
                        </td>
    Quelque chose dans la propriété text comme text =" if(...) else"


    Merci d'avance !

  2. #2
    Membre émérite Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Par défaut
    Tu utilises quel type de DataSource pour peupler ton Repeater?

    A+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 196
    Par défaut
    Quel type de datasource ? Qu'entends tu par là ?

  4. #4
    Membre émérite Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Par défaut
    La référence d'objet n'est pas définie à une instance d'un objet.
    Pour être sur de ne traité que les items uniquement, rajoute une condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
       Label vacances = .... 
       .....
    }
    A+.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 196
    Par défaut
    ça venait de là
    Merci pour l'aide !

    Et en ce qui concerne ma deuxième question ?

  6. #6
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Pour ce qui est de ta seconde question, tu peux gérer cela dans l'event ItemDataBound de ton Repeater.
    Sinon, tu peux faire quelque que chose comme cela (même si je privilégierai la première solution) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <asp:Label ID="Vacances" value='<%#DataBinder.Eval(Container.DataItem, "ID") %>' 
    Text='<%#  GetLibelleForBoolean(DataBinder.Eval(Container.DataItem, "Vacances")) %>'   
    runat="server" ' />
    Puis, dans ton code behind, tu déclares une fonction GetLibelleForBoolean :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    protected string GetLibelleForBoolean(bool Vacances)
    {
         return Vacances ? "Oui" : "Non";
    }

  7. #7
    Membre émérite Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Par défaut
    Quelque chose dans la propriété text comme text =" if(...) else"
    C'est possible, mais je me demande bien pourquoi tu ne le met pas dans le code Behind. Deuxième solution, la construction d'une expression builder
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Text="<%$ MaFonction:monArgument %>"
    Je sais uniquement son existence, pour plus d'info Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. boucle pour remplir combobox par oui et non
    Par panda78 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/08/2012, 14h29
  2. Réponses: 34
    Dernier message: 08/03/2007, 14h51
  3. Réponses: 8
    Dernier message: 15/07/2006, 18h59
  4. Réponses: 4
    Dernier message: 30/05/2006, 17h21
  5. Réponses: 16
    Dernier message: 22/03/2006, 11h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo