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 :

Afficher un message en cas de requête qui ne renvoit aucun résultat


Sujet :

ASP.NET

  1. #1
    Membre habitué Avatar de blasil64
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 324
    Points : 136
    Points
    136
    Par défaut Afficher un message en cas de requête qui ne renvoit aucun résultat
    Bonjour à tous,
    J'utilise un SQLDataSource qui réalise une requête sur une de mes tables de ma base de données. J'utilise ensuite un Repeater pour l'affichage. Je cherche à afficher un message si la requête ne renvoie aucun résultat. Mais je n'y arrive pas...
    J'ai trouvé cette page qui me semble une bonne technique, mais je n'ai pas réussi à l'appliquer...

    Voici mon code du fichier .aspx :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
       1. <asp:Repeater ID="Repeater1" runat="server" DataSourceID="csSortiesCinemaProchaine">  
       2.         <ItemTemplate>  
       3.             <div runat="server" visible='<%# IsDataEmpty %>'>  
       4.                 <asp:Label ID="sortieCinemaProchaineNoData" runat="server" Text="Il n'y a pas de sortie cette semaine !"></asp:Label>  
       5.             </div>  
       6.             <div class="bloc_film">  
       7.                       .... All informations about the result of the query  
       8.             </div>  
       9.        </ItemTemplate>  
      10. </asp:Repeater>
    Et voici le code de mon fichier .aspx.cs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
       1. protected bool IsDataEmpty  
       2.     {  
       3.         get  
       4.         {  
       5.             ICollection list = Repeater1.DataSource as ICollection;  
       6.             return list.Count == 0 ? true : false;  
       7.         }  
       8.     }
    Je suis ouvert à toutes autres propositions concernant la méthode, mais si vous voyez que j'ai oublié quelque chose dans mon code, je suis preneur.

    Merci d'avance pour votre aide !

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Et ton problème est? T'as rien qui s'affiche je suppose

  3. #3
    Membre habitué Avatar de blasil64
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 324
    Points : 136
    Points
    136
    Par défaut
    Ah oui pardon. En effet, je n'ai rien qui s'affiche. Ma phrase ne s'affiche pas...

  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Citation Envoyé par blasil64 Voir le message
    Ah oui pardon. En effet, je n'ai rien qui s'affiche. Ma phrase ne s'affiche pas...
    Bah c'est normal, tu cherches à afficher qqchose dans un ItemTemplate alors qu'il n'y a pas d'item justement

  5. #5
    Membre habitué Avatar de blasil64
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 324
    Points : 136
    Points
    136
    Par défaut
    Je l'ai enlevé du ItemTemplate pour le mettre entre le SQLDataSource et le Repeater, mais là il s'affiche lorsque j'ai des résultats aussi... Je ne peux pas le mettre entre le Repeater et le ItemTemplate...
    Que me préconisez-vous ?

    Merci pour votre aide !

  6. #6
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Salut,

    tu peux mettre dans ton headertemplate :
    <tr runat="server" visible='<%# IsDataEmpty %>'>
    <td>
    Pas de données à afficher
    </td>
    </tr>
    Et ajouter une propriété IsDataEmpty qui renvoie true si tu n'as pas de données

  7. #7
    Membre habitué Avatar de blasil64
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 324
    Points : 136
    Points
    136
    Par défaut
    Merci pour ta réponse !

    Citation Envoyé par Philippe Vialatte Voir le message
    Salut,

    Et ajouter une propriété IsDataEmpty qui renvoie true si tu n'as pas de données
    Moi j'ai une propriété dans mon fichier.aspx.cs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    protected bool IsDataEmpty
        {
            get
            {
                ICollection list = Repeater1.DataSource as ICollection;
                return list.Count == 0 ? true : false;
            }
        }
    Mais elle ne fonctionne pas, ça me renvoie une erreur que j'ai des données en retour ou pas :


    La référence d'objet n'est pas définie à une instance d'un objet.
    Comment puis-je améliorer ?

    Merci d'avance pour votre aide !

  8. #8
    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 : 41
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Ou la datasource de ton repeater est null ou list est null.
    Ajoute quelques tests pour t'assurer que ce n'est pas le cas.

  9. #9
    Membre habitué Avatar de blasil64
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 324
    Points : 136
    Points
    136
    Par défaut
    Je crois que le datasource est null, du coup list est null... Pourtant, si j'enlève la propriété, j'ai bien des résultats de ma requête qui s'affichent. Que faire ?

    Merci pour l'aide !

Discussions similaires

  1. Requête qui ne retourne aucun résultat en timeout avec un top
    Par olysmar2 dans le forum Développement
    Réponses: 10
    Dernier message: 27/11/2014, 19h35
  2. Requête qui dure longtemps sans résultat
    Par SALMHSN dans le forum PL/SQL
    Réponses: 13
    Dernier message: 03/05/2011, 12h04
  3. [MySQL] requête qui renvoie un mauvais résultat
    Par Souri84 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 03/12/2010, 09h18
  4. Réponses: 23
    Dernier message: 31/05/2007, 16h09

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