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 :

[C#] Problème GridView pagination


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 33
    Points : 24
    Points
    24
    Par défaut [C#] Problème GridView pagination
    Bonjour à tous,

    J'ai un problème avec ma pagination dans mon gridview. J'ai donc un GridView qui affiche une liste de tout les fichiers XML d'un répertoire (2 colonnes : nom et un bouton click).
    Dans ma page aspx j'ai mis OnRowCommande="RechercheGridView_RowCommand" AllowPaging="true" et PageSize="10"..
    Dans ma page aspx.cs j'ai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    protected void Page_Load(object sender, EventArgs e)
    {
    if(!IsPostBack)
    {
    DataTable dt = new DataTable();
    dt.Columns.Add(new DataColumn("NomFichier", typeof(String)));
    String[] files;
    files = Directory.GetFiles(@"R:\");
    int filecount = files.GetUpperBound(0) + 1
    for (int i = 0; i< filecount; i++)
    {
     DataRow row1 = dt.NewRox();
     row1["NomFichier"] = System.IO.Path.GetFileName(files[i]);
     dt.Rows.Add(row1);
    }
    DataView dv = new DataView(dt);
    GridView2.DataSource = dv;
    GridView2.DataBind();
    }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public void RechercheGridView_RowCommand(Object sender, CommandEventArgs e)
    {
    string val = (string)e.CommandArgument;
    var doc = XDocument.Load(@"R:\"+val);
    ...
     
    }
    J'ai mis 11 fichier dans mon dossier, quand je clic sur le "2" du GridView il me dit :
    Could not find file "R:\2".
    Il souligne var doc = XDocument.Load(@"R:\"+val); Si je comprend mon erreur c'est qu'il essaye de lire un fichier qui s'appel "2" dans le répertoire, "2" étant du au click sur le "2" du GridView ?

    Mais pourquoi ai-je cette erreur ?

    (Je n'ai aucune erreur si j'affiche les fichiers sans pagination)

    EDIT :
    Si je retire tout dans le OnRow... il me dit :
    The GridView "GridView2" fired event PageIndexChanging which wasn't handled..
    Je vais donc essayer d'ajouter un event PageIndexChanging

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 33
    Points : 24
    Points
    24
    Par défaut
    Maj : apparement j'ai rajouté dans la page aspx : OnPageIndexChaning et dans la page apsx.cs : GridView2.PageIndex = e.NewPageIndex; GridView2.DataBind(); Quand je clique sur 2, le programme passe par le traitement d'un click sur fichier en fait ..

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 33
    Points : 24
    Points
    24
    Par défaut
    Maj 2 : J'ai créé une méthode AfficheGrid avec le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    DataTable dt = new DataTable();
    dt.Columns.Add(new DataColumn("NomFichier", typeof(String)));
    String[] files;
    files = Directory.GetFiles(@"R:\");
    int filecount = files.GetUpperBound(0) + 1
    for (int i = 0; i< filecount; i++)
    {
     DataRow row1 = dt.NewRox();
     row1["NomFichier"] = System.IO.Path.GetFileName(files[i]);
     dt.Rows.Add(row1);
    }
    DataView dv = new DataView(dt);
    GridView2.DataSource = dv;
    GridView2.DataBind();
    Dans Page_Load j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (!IsPostBack)
    {
    AfficheGrid();
    }
    Dans GridView2_PageIndexChanging :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    {
    AfficheGrid();
    GridView2.PageIndex = e.NewPageIndex;
    GridView2.DataBind();
    }
    Le problème vient du traitement de RechercheGridView_RowCommande qui est appelé lorsque l'on clic sur un chiffre de pagination.
    Que dois-je changer pour ne l'appeler que lorsque l'on click sur un bouton "Click" et non pas sur un chiffre de pagination "2" ou "3" ... ?

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/04/2013, 04h08
  2. Problème de pagination avec un GridView
    Par Perceuse-Killer dans le forum ASP.NET
    Réponses: 2
    Dernier message: 07/02/2007, 13h30
  3. [DisplayTag] Problème de pagination
    Par questionneuse dans le forum Taglibs
    Réponses: 6
    Dernier message: 21/08/2006, 16h54
  4. [MySQL] Problème de pagination dans un script.
    Par Scurz dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 13/08/2006, 12h47
  5. [SQL] Problème de pagination avec tableau
    Par guy2004 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 06/05/2006, 22h16

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