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 :

Gridview qui est vide (et qui devrait pas)


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 118
    Points : 71
    Points
    71
    Par défaut Gridview qui est vide (et qui devrait pas)
    Bonjour

    Mon probleme est le suivant : un gridview qui n'affiche aucune donnée alors qu'il le devrait.
    L'execution en pas-a-pas me permet de dire que :
    - On appelle la bonne fonction de la DAL,
    - On exécute la bonne requête SQL,
    - Cette dernière est bien paramétrée,
    - Quand je teste cette requête directement dans la base, il y a des lignes de résultats.

    Le gridview -lui- ne s'affiche pas, et lorsque je regarde sa propriété gridview.rows.count je voit qu'elle est à zéro.

    Définition de la source de donnée (.aspx)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <asp:ObjectDataSource ID="ResDataSource" runat="server" TypeName="ReportBLL" SelectMethod="showTopError">
                        <SelectParameters>
                            <asp:Parameter Name="a_type" DefaultValue="R" Type="String" />
                            <asp:Parameter Name="a_value" DefaultValue="50" Type="String" />
                        </SelectParameters>
                    </asp:ObjectDataSource>
    Vient ensuite le GridView (.aspx)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
                    <%-- Gridview Resultat --%>
                    <asp:GridView ID="ResGridView" runat="server" AllowSorting="False" CssClass="FlashTable" DataSourceID="ResDataSource" AutoGenerateColumns="false" Width="1000px" Visible="true">
                        <Columns>
                            <asp:BoundField DataField="service_name" HeaderText="Service" ItemStyle-HorizontalAlign="Center" />
                            <asp:BoundField DataField="robot_name" HeaderText="Robot" ItemStyle-HorizontalAlign="Center" />
                            <asp:BoundField DataField="script_name" HeaderText="Scenario" ItemStyle-HorizontalAlign="Center" />
                            <asp:BoundField DataField="error_description_fr" HeaderText="Erreur" ItemStyle-HorizontalAlign="Center" />
                            <asp:BoundField DataField="nb" HeaderText="Occurences" ItemStyle-HorizontalAlign="Center" />
                        </Columns>
                    </asp:GridView>
                    <asp:Label ID="Label1" Text="" runat="server"></asp:Label>
    J'ai beau chercher je n'arrive pas à comprendre pourquoi une requête qui retourne des lignes ne remplit pas ce gridview.

    PS : Environnement Visual Studio 2005 sous Windows XP, base Oracle 10i sous Linux.
    Code, haiku, cinéma, mon fourre-tout : http://ashaku.free.fr

  2. #2
    Membre actif Avatar de yroubag
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2004
    Messages : 162
    Points : 224
    Points
    224
    Par défaut
    Salut
    Ça pourrais-tu être que ton GridView n'est pas binder sur tes données?
    Yroubag
    Bien poser les questions, c’est tout un art.
    Où tout dépend, bien sûr, de la réponse que l’on veut obtenir. -André Frossard

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 118
    Points : 71
    Points
    71
    Par défaut
    Ca pourrait mais j'ai bien mis l'argument DataSourceID="ResDataSource" dans le gridview.
    C'etait d'ailleurs pour un test direct. Avec la methode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ResGridView.datasourceID = ResDatasource.uniqueID
    ResGridView.databind()
    Dans resGridView_Init() j'obtiens le même résultat : rien.
    Code, haiku, cinéma, mon fourre-tout : http://ashaku.free.fr

  4. #4
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Moi, ce que je trouve bizarre c'est de ne pas voir de requête SELECT dans le ObjectDataSource. Est ce que la méthode "showTopError" fait office de requête ?

    Maintenant, j'ai plus l'habitude de SqlDataSource, mais je pense que ça dois fonctionner presque pareil.

    Peux tu vérifier que la requête renvoi bien des données, en amont ?
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 118
    Points : 71
    Points
    71
    Par défaut
    Oui effectivement, l'attribut TypeName="ReportBLL" indique le fichier BLL a utiliser pour les données et SelectMethod="showTopError" indique la fonction a lancer dans ce fichier.

    L'exécution en pas-à-pas me montre que je passe bien dans cette fonction et que la requête se fait correctement (pas d'erreur au niveau SQL).

    Je viens d'ailleurs de me rendre compte d'un truc pire : A la sortie de ma fonction de requetage je place un espion sur la datatable et je peux voir qu'elle contient des lignes o_O mais le gridview.rows.count reste a zéro ...
    Code, haiku, cinéma, mon fourre-tout : http://ashaku.free.fr

  6. #6
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Et tu nas rien d'autre comme code qui traine dans la page ou le CodeBehind qui pourrait avoir une influence sur le GridView ?

    Idée à la con : essaie de virer la classe CSS, c'est peut être tout simplement l'affichage qui passe pas.
    Regarde aussi le source de ta apge interprétée, pour voir ce qu'il fait avec le GridView. Tu devrais au moins avoir le début de la Table génére par le GridView. Si oui, le problème se situe dans la chargement des donéne, sinon, le problème se situe sur l'affichage du GridView lui même.

    Enfin, je te conseilelrais de faire une test en spécifiant aucune Columns, juste pour voir si le problème ne vient pas de là (avec un AutoGenerateColumns à True).
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 118
    Points : 71
    Points
    71
    Par défaut
    Merci de ta réponse zoofy, j'ai finit par trouver, c'était une erreur de ma part dans le code de la DAL (que je n'ai pas donné ici).
    C'est tout de même sur tes indices que j'ai fouiné de plus près dans ce coin et que j'ai trouvé :

    En fait la BLL et la DAL sont des suites de fonctions assez similaires, j'en ai copié-collé une pour ma fonction ShowTopError() mais celle que j'ai copié était une fonction qui faisait un update et donc ne faisait pas de return a la fin.

    La datatable était donc bien remplie mais jamais renvoyée.
    Mea culpa et comme le dit mon collègue : DRY ! (Don't Repeat Yourself)

    Encore merci pour tes réponses et bonne journée
    Code, haiku, cinéma, mon fourre-tout : http://ashaku.free.fr

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

Discussions similaires

  1. [MySQL] backup qui est vide
    Par ikramta dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 15/04/2009, 10h51
  2. Ce qui est dans une table mais pas dans l'autre !
    Par youyoule dans le forum Requêtes
    Réponses: 4
    Dernier message: 30/12/2007, 12h57
  3. inserer un numeric qui est vide?
    Par shinrei dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 14/03/2006, 21h39
  4. Champ vide = Liste Invisible mais c'est le SF qui est invisi
    Par samlepiratepaddy dans le forum Access
    Réponses: 13
    Dernier message: 29/09/2005, 15h45
  5. Ne pas afficher un champs qui est vide dans ma BD
    Par yoda_style dans le forum ASP
    Réponses: 3
    Dernier message: 27/04/2004, 11h40

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