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 :

Problème Controle Repeater/ méthode eval()


Sujet :

ASP.NET

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 202
    Par défaut Problème Controle Repeater/ méthode eval()
    Bonjour,

    Je vais essayer d’être précis et clair :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                        <asp:Repeater ID="repeater1" runat="server" DataSourceID="ODSMeeting">
                            <ItemTemplate>
                                <li>
                                    <asp:LinkButton ID="LnkMeeting" runat="server" CommandArgument='<%# Eval("IDRDV") %>'
                                        OnClick="LnkMeeting_Click" ForeColor="Black">
                                        <%# Eval("objet") %>
                                    </asp:LinkButton>
                                </li>
                            </ItemTemplate>
                        </asp:Repeater>
    Dans ce morceau de code j'ai donc un controle Repeater qui reçoit en datasource ce que renvoit une méthode qui sélectionne une liste de rendez vous dans une table.
    Tout marche bien, aucun problème...
    J'affiche "l'objet du RDV" dans cet exemple.

    Problème:
    Je ne dois afficher le RDV que si la date de debut du RDV est inférieur à la date actuelle.

    J'ai essayé en faisant quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                   <% DateTime date = Convert.ToDateTime(Eval("IDRDV"));
                    int tt;
                    tt = DateTime.Compare(date, DateTime.Now);
     
                    if (tt < 0) { Eval("IDRDV"); }%>
    mais ça ne marche pas et j'ai une exception:
    Les méthodes de liaison de données telles que Eval(), XPath() et Bind() peuvent uniquement être utilisées dans le contexte d'un contrôle lié aux données.
    Est-ce que quelqu'un sait comment je pourrais contourner ce problème ?
    merci d'avance !

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Essaie de remplacer :

    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataBinder.Eval (Container.DataItem, "IDRDV")

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 202
    Par défaut
    Merci pour ta réponse:

    Voici ce que j'obtiens:
    System.ComponentModel.container ne contient pas de définition pour DataItem

  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
    L'expression de liaison de données se fait par tu as omis le #.
    En plus pour ce genre de traitement, la plus facile et le plus simple c'est de faire le traitement en code behind.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%#MaFunction(Eval("IDRDV"))%>
    Code behind:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public string MaFunction(DateTime d)
    {
       //traitement ici   
    }

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 202
    Par défaut
    Ouais merci j'ai résolu le problème en m'orientant dans cette optique!

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

Discussions similaires

  1. [Débutant] Problème méthode EVAL
    Par arngrimur dans le forum ASP.NET
    Réponses: 2
    Dernier message: 18/10/2011, 10h31
  2. problème avec "repeat"
    Par chti_juanito dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 29/06/2006, 15h10
  3. problème avec repeat until
    Par KHEOPS1982 dans le forum Delphi
    Réponses: 13
    Dernier message: 16/06/2006, 09h54
  4. problème avec la méthode getElementById() dans Firefox
    Par matrouba dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/12/2005, 08h55
  5. Problème avec la méthode pack()
    Par tomca dans le forum Langage
    Réponses: 5
    Dernier message: 15/09/2005, 10h58

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