CREZ59
Messages postés15Date d'inscriptiondimanche 16 juillet 2006StatutMembreDernière intervention 1 août 2007
-
31 juil. 2006 à 14:45
CREZ59
Messages postés15Date d'inscriptiondimanche 16 juillet 2006StatutMembreDerniè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)
CREZ59
Messages postés15Date d'inscriptiondimanche 16 juillet 2006StatutMembreDernière intervention 1 août 20071 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);
}
}
******************************************************************
cs_Yopyop
Messages postés586Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention10 février 20101 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.
CREZ59
Messages postés15Date d'inscriptiondimanche 16 juillet 2006StatutMembreDernière intervention 1 août 20071 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.