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 :

[ASP.NET 2.0][C#] Datagrid et Filtre


Sujet :

ASP.NET

  1. #1
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 60
    Par défaut [ASP.NET 2.0][C#] Datagrid et Filtre
    Rebonjour
    J'ai un autre petit probleme avec mon datagrid. J'affiche le contenu d'une table, mais ce que j'aimerai faire, c'est disposer d'une liste de lettre au dessus (A B C D etc) et que quand on clique dessus, ca n'affiche que les entrée de la table dont tel champ commence par la lettre cliquée.

    Jai bien la requette à mettre pour chaque lettre mais je ne sais pas où la placer

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    Tu peux peut-être mettre cette séries de lettres comme une séries de LinkButton avec la lettre repassée en argument, puis abonner tous ces liens à un événement commun dans lequel, tu récupérerais l'argument contenant la lettre, tu génères la requête qui va bien, puis tu exécutes ce filtrage sur le datasource de te grille et tu rebind la grille ?

  3. #3
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 60
    Par défaut
    J'avais ca dans l'idée mais le truc c'est que je ne sais pas comment faire le filtrage que tu indique (ie dans quel event/fonction placer ma requette) et où/comment faire un rebind.

    merci davance

  4. #4
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    Qu'utilises-tu comme source de données ?

  5. #5
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 60
    Par défaut
    Une base de données MSSQL que je reference à mon grid avec un datsource
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"

  6. #6
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    Pour modifier ta requête, tu as, en code, la propriété SelectCommand sur l'objet SqlDataSource.

    Donc, ça donnerait un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    SqlDataSource1.SelectCommand = "LaRequêteSQLQuiVaBien";
    SqlDataSource1.Select(null);
     
    //Puis sur le contrôle relié ayant ton SqlDataSource1 comme source de données : 
     
    MonControle.DataBind();

  7. #7
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 60
    Par défaut
    un peu a la bourre : merci !

  8. #8
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 60
    Par défaut
    J'ai encore un petit soucis en fait, j'ai parlé trop vite.
    Quand je bind, ben mon datagrid disparait :/

    SqlDataSource1.SelectCommand =
    "macommande";
    SqlDataSource1.Select(DataSourceSelectArguments.Empty);
    GridView_Companies.DataBind();

    C'est pas qu'il est vide, c'est qu'il n'apparait plus ! des idéees?

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 231
    Par défaut
    Essaye AutoGenerateColumns = "true" pour voir si cela vient de ta définition de colonnes. si ça ne change rien, ça ne vient pas de là, si ça affiche les colonnes c'est que tu as dû te tromper dans les Binds de tes colonnes

  10. #10
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 60
    Par défaut
    En faisant ca, ca affiche les colonnes.
    Mais le soucis en fait c'est que au dessus de mon datagrid j'ai plusieurs boutons A B C D E etc qui filtrent la recherche donc. Et c'est en cliquant dessus que ca ne marche pas.

    Voici le code lancé quand on clique sur les boutons:
    protected void LinkButton_Click(object sender, EventArgs e)
    {
    SqlDataSource1.SelectCommand =
    "SELECT Users.name " +
    "FROM Users " +
    "INNER JOIN Employees ON Users.id = Employees.id_user " +
    "WHERE (SUBSTRING(Users.name, 1, 1) LIKE '" + ((LinkButton)sender).Text + "')";
    SqlDataSource1.Select(DataSourceSelectArguments.Empty);
    GridView_Users.DataBind();
    }
    le code du bouton:
    <asp:LinkButton ID="LinkButton_All" runat="server" OnClick="LinkButton_Click">All</asp:LinkButton>
    En faisant ca, maintenant, il ne se passe plus rien quand je clique. Meme pas de refresh, rien.

  11. #11
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    A quel endroit la liaison au DataSource est-elle effectuée ?

    Code-behind ou dans la définition du contrôle ?

  12. #12
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 7
    Par défaut
    Pour ton souci de "rien ne se passe et même pas de refresh", j'ai déjà rencontré le problème quand j'ai utilisé à la fois la propriété "OnItemCommand" de mon Datagrid et des actions "Click" sur un des objets contenus dans mon Datagrid.
    Depuis, j'utilise exclusivement le "OnItemCommand" dans le Datagrid en spécifiant le "CommandName" dans l'objet sur lequel on clique et cela ne se produit plus.

  13. #13
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 60
    Par défaut
    Citation Envoyé par Pongten Voir le message
    A quel endroit la liaison au DataSource est-elle effectuée ?

    Code-behind ou dans la définition du contrôle ?
    A la base dans le controle, mais le code que tu vois au dessus (celui où je change la requette) est dans le code behind.

  14. #14
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 60
    Par défaut
    Citation Envoyé par blacky Voir le message
    Pour ton souci de "rien ne se passe et même pas de refresh", j'ai déjà rencontré le problème quand j'ai utilisé à la fois la propriété "OnItemCommand" de mon Datagrid et des actions "Click" sur un des objets contenus dans mon Datagrid.
    Depuis, j'utilise exclusivement le "OnItemCommand" dans le Datagrid en spécifiant le "CommandName" dans l'objet sur lequel on clique et cela ne se produit plus.
    Je n'utilise aucune des 2. Ou alors je fais pas expres. Les boutons sont en dehors du grid. Et onitemcommand je ne lai pas touché.

  15. #15
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    Juste pour être sur, il passe bien dans ta méthode quand tu cliques sur un des liens ?

  16. #16
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 60
    Par défaut
    Ok, j'ai trouvé. J'avais pas pensé à faire un update du panel qui entourrait le grid, après le databind. Maintenant c'est bon.

    Désolé c'était très con mais j'y avais pas pensé. (et vous non plus apparement -je rigole, merci de votre aide)


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

Discussions similaires

  1. [C# et ASP.NET] Dimension d'un Datagrid
    Par matinho dans le forum ASP.NET
    Réponses: 10
    Dernier message: 02/02/2008, 16h36
  2. [ASP.NET 2.0][C#] Datagrid et Foreign key
    Par patricklinden dans le forum ASP.NET
    Réponses: 4
    Dernier message: 26/09/2007, 13h07
  3. [ASP.Net] Remplir un DataGrid
    Par pinson dans le forum Delphi .NET
    Réponses: 5
    Dernier message: 10/02/2007, 10h46

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