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 : recherche de ligne et pagination


Sujet :

ASP.NET

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Gridview : recherche de ligne et pagination
    Bonjour,
    Mon but est de sélectionner un ligne dans un gridview par programmation, jusque la c'est simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    int index_a_select = 0;
    for (int index = 0; index < GridView1.Rows.Count; index++)
    {
      string str_NumEDE = GridView1.Rows[index].Cells[0].Text;
      if (str_NumEDE == Txt_Cheptel.Text)
        index_a_select = index;
    }
    if (index_a_select != 0)
      GridView1.SelectedIndex = index_a_select;
    Seulement comment ça se passe si l'on utilise la pagination, j'imagine qu'il faut que je trouve la page a afficher au préalable depuis le datasource de la gridview (qui est un ObjectDataSource) mais je ne vois pas quelle propriété utiliser.

    Merci d'avance

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut

    j'ai beau parcourir les forums et la MSDN je ne trouve aucun exemple qui réuni selection d'une ligne par programme ET pagination.

    Personne ne s'est jamais posé la question ? c'est pourtant pratique de pouvoir tomber directement sur une ligne dans la liste en spécifiant une valeur dans une textbox

  3. #3
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Y'a un solution, mais d'abord, faut arrêter de penser à l'envers

    1 - ton GridView ne contient que les données qui sont affichées.
    Si c'est les rows 0 à 14, alors c'est tout ce qu'il y a dans le GridView.
    Quand tu changes de page, il va se remplir (nouvelle requète) avec les lignes suivantes.
    Note : c'est une erreur hyper classique, commise par 95% des débutants : tu veux travailler sur l'interface au lieu de travailler sur les données.

    2 - C'est donc dans la source de tes données qu'il faut trouver l'indice de ta donnée.
    Une fois que c'est fait, tu n'as plus qu'à choisir la bonne page au chargement de ta page, et à sélectionner le bon index dans cette page.

    Tu verras, avec ça tu va torcher le pb.

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta réponse,
    Comme je le disais dans mon premier post, je me doute bien que c'est au niveau de la source qu'il faut trouver la page.

    Le hic c'est que je ne vois pas ou taper car je dois tenir compte des possible tris effectués sur la grille et j'ai la valeur null dans la propriété DataSource du gridview.

    De plus dans l'ObjectDataSource rien ne semble permettre d'obtenir l'index d'un element.

    J'aurais loupé un truc ?

  5. #5
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Alors je serais toi je ne bosserais pas avec l'ObjectDataSource.
    C'est nickel pour un TP ou pour un site perso, mais en environnement professionnel, ça n'est pas assez souple.
    La preuve : tu vas en baver pour faire ce que tu veux

    Ensuite oui, la propriété DataSource n'est pas maintenue dans le GridView tout simplement pour éviter qu'une DataTable de 100000 lignes ne transforme la page en usine à gaz (qui met 30 secondes à charger)

    Il faut donc bosser directement sur la source des données. Perso je préfère récupérer directement une DataTable et jouer avec. Avec une ObjectDataSource... bein ça marche moins bien (mais si tu y arrives fait moi signe)

    Ensuite pour le tri, je me ferais pas chier : je le reseterais tout simplement. Le tri ne sert plus à rien si la bonne ligne est sélectionnées directement

    Après y'a ptet moyen de se débrouiller en gardant le tri et en gardant l'ObjectDataSource, mais perso ça me prendrais plus de temps de me faire ch.... à essayer de dompter l'ObjectDataSource (j'ai déjà essayé) que de tout faire proprement à la mano.

    HF & GL

Discussions similaires

  1. [VBA-E]recherche de lignes TOP et BOTTOM
    Par tangjuncn dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/04/2007, 19h07
  2. Recherche une ligne en fonction d'une date
    Par c+cool dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 20/09/2006, 16h30
  3. [VBA-E] rechercher une ligne pour remplacer?
    Par zouille dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 31/12/2005, 11h31
  4. Rechercher une ligne vide
    Par nico-pyright(c) dans le forum Traitement d'images
    Réponses: 7
    Dernier message: 22/12/2005, 18h10
  5. Fonction de recherche de ligne...
    Par Zenol dans le forum Langage
    Réponses: 6
    Dernier message: 05/12/2005, 20h26

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