Problème de pagination avec le Datagrid

CREZ59 Messages postés 15 Date d'inscription dimanche 16 juillet 2006 Statut Membre Dernière intervention 1 août 2007 - 31 juil. 2006 à 14:45
CREZ59 Messages postés 15 Date d'inscription dimanche 16 juillet 2006 Statut Membre Dernière intervention 1 août 2007 - 2 août 2006 à 08:16
Bonjour à tous,


J'ai un soucis avec un datagrid.
Je formate un datagrid à la main, ensuite de fait un lien avec ma base de données. Je met la propriété "AutoGenerateColumns" à false pour éviter d'avoir en double mes données.


Le soucis est que lorsque je met "AutoGenerateColumns" à false et que je change de page, je n'accede meme pas à ma méthode "PageIndexChanged"
alors que lorsque je met "AutoGenerateColumns" à true, tout fonctionne, mais mes données sont doublés (logique)


Merci de l'aide que vous m'apporterais.

-------------
Amicalement,

Christophe.
A voir également:

7 réponses

CREZ59 Messages postés 15 Date d'inscription dimanche 16 juillet 2006 Statut Membre Dernière intervention 1 août 2007 1
1 août 2006 à 15:48
Je recherche toujours une solution.

Merci d'avance

-------------
Amicalement,

Christophe.
0
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
1 août 2006 à 16:39
salut,
est-ce que tu fais une pagination custom ou utilistes-tu celle par défaut ?
pourrais-tu poster ton code...

yopyop
0
CREZ59 Messages postés 15 Date d'inscription dimanche 16 juillet 2006 Statut Membre Dernière intervention 1 août 2007 1
1 août 2006 à 19:30
Je n'utilise pas le custom,


je met simplement le AllowPaging = true.


j'ai déjà fait le test avec le custom à true, mais ca n'a rien changer.
Je ne comprend plus, c'est trop bizarre

-------------
Amicalement,

Christophe.
0
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
1 août 2006 à 19:46
re,

pourrais-tu poster ton code... ce sear plus simple.

yopyop
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
CREZ59 Messages postés 15 Date d'inscription dimanche 16 juillet 2006 Statut Membre Dernière intervention 1 août 2007 1
1 août 2006 à 19:53
//Alimentation du Datagrid
******************************************************************
    DataGridResults.DataSource = dsDonnees;
    DataGridResults.DataBind();
******************************************************************

//Mise en forme de mon datagrid car j'ai des décimals qui sont sur x 0 après la virgule.
******************************************************************
private void miseEnFormeDataGridResults(DataSet dsDonnees)
  {
   BoundColumn bdColonne;
   //Mise en forme des colonnes du tableau
   for(int col=0;col<dsDonnees.Tables[0].Columns.Count;col++)
   {
    bdColonne = new BoundColumn();
    bdColonne.HeaderText = dsDonnees.Tables[0].Columns[col].ColumnName;
    
    switch(dsDonnees.Tables[0].Columns[col].DataType.Name)
    {
     case "String":
      bdColonne.DataFormatString="{0:C}";
      break;
     case "Decimal":
      bdColonne.DataFormatString="{0:F2}";
      break;
     case "Int32":
      bdColonne.DataFormatString="{0:G}";
      break;
    }
    bdColonne.DataField = dsDonnees.Tables[0].Columns[col].ColumnName;
    DataGridResults.Columns.Add(bdColonne);
   }
  }
******************************************************************

//Changement de page
******************************************************************
private void DataGridResults_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
  {
   DataGridResults.CurrentPageIndex = e.NewPageIndex;
   DataGridResults.DataSource = dsresult;
   DataGridResults.DataBind();
  }
******************************************************************

-------------
Amicalement,

Christophe.
0
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
2 août 2006 à 00:38
a quel moment appelles-tu miseEnFormeDataGridResults..?
.
d'apès ton code (apparemment il n'y a pas tout), tu fais un bind du dataset et ensuite tu ajoutes les colonnes manuellement...?
a quoi sert le bind dans ce cas (tu n'appelles pas ta miseEnForme... dans PageIndexChanged ?)?

je te suggère de passer par l'événement onItemDatabound pour formatter tes données.
Pour les colonnes a double, tu peux utiliser l'itemtemplate pour les cacher.

yopyop
0
CREZ59 Messages postés 15 Date d'inscription dimanche 16 juillet 2006 Statut Membre Dernière intervention 1 août 2007 1
2 août 2006 à 08:16
Je fait d'abord mon "miseEnFormeDataGridResults" et ensuite je fait mon bind.

j'ai mis "DataGridResults_PageIndexChanged" pour montrer ce que j'avais mis dans le changement de page.

Je procede comme cela car j'ai des décimals à 2 chiffres apres la virgule dans ma base et si je fait pas de mise en forme à la main, il me met X 0 après la virgule.

-------------
Amicalement,

Christophe.
0
Rejoignez-nous