cs_Zekez
Messages postés27Date d'inscriptionmardi 25 mai 2004StatutMembreDernière intervention26 septembre 2006
-
9 avril 2005 à 18:30
cs_Zekez
Messages postés27Date d'inscriptionmardi 25 mai 2004StatutMembreDernière intervention26 septembre 2006
-
9 avril 2005 à 23:52
Bonjour,
Voilà mon problème, j'ai une colonne hyperlien que je dois insérer dans une DataTable mais... le compilateur hurle:
DataTable MaTable= new DataTable();
HyperLinkColumn hlc= new HyperLinkColumn();
hlc.HeaderText= "Action";
hlc.Text= "Commander";
MaTable.Columns.Add(hlc); // Et c'est sur ça que ça ne marche pas...
GrilleProduits.DataSource= MaTable;
Voilà, le compilateur me dit qu'il ne sait pas convertir une HyperLinkColumn en DataColumn et je le comprend bien mais je ne sais pas vraiment comment je pourrais m'arranger pour que ça passe...
Le résultat doit se trouver dans un DataGrid après mais je pense qu'il n'y aura pas de problèmes si je fais: MonDataGrid.DataSource= MaTable;
J'espère que quelqu'un saura me dépanner un peu, merci.
cs_Zekez
Messages postés27Date d'inscriptionmardi 25 mai 2004StatutMembreDernière intervention26 septembre 2006 9 avril 2005 à 20:17
D'accord, merci! Seulement je vois qu'il m'ajoute la colonne hyperlien non pas en dernière colonne mais en 1ere colonne de mon datagrid où que je l'ajoute dans le code... comment puis-je faire pour inverser l'ordre des colonnes sachant que je n'utilise pas le mode design?
cs_Zekez
Messages postés27Date d'inscriptionmardi 25 mai 2004StatutMembreDernière intervention26 septembre 2006 9 avril 2005 à 21:31
Ha... ben alors je ne vois pas pourquoi elle ne s'ajoute pas à la fin ma colonne, pourtant je met bien mon Add sur la fin...
Voilà mon code:
string connStr= "Provider= Microsoft.Jet.OLEDB.4.0; Data Source=" + MapPath("./InfonLine.mdb");
string selStr= "SELECT LibelleProduit AS Libellé FROM Produit ORDER BY LibelleProduit";
OleDbDataAdapter oDA;
DataSet oDS;
if(Page.IsPostBack == false)
{
oDA= new OleDbDataAdapter(selStr, connStr);
oDS= new DataSet();
oDA.Fill(oDS, "Acceuil");
// Création de la colonne hyperlien
HyperLinkColumn hlc= new HyperLinkColumn();
hlc.HeaderText= "Action";
hlc.Text= "Commander";
Peut-être qu'il ne considère pas la colonne ajoutée via le DataSet comme une colonne à prendre en compte pour le Add... ça me laisse encore plus dans le flou en fait...
Je sais que j'ai la propriété du DataGrid "AutoGenerateColumns" à True par défaut mais si je supprime ça, il ne m'affiche plus les données du DataSet... hmmm et ça a p'tet rien à avoir aussi...
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Zekez
Messages postés27Date d'inscriptionmardi 25 mai 2004StatutMembreDernière intervention26 septembre 2006 9 avril 2005 à 22:09
Rien n'à y faire, ainsi, il ne m'affiche pas le colonne hyperlien et si je place un deuxième DataBind juste après le Add... il me place tjs la colonne hyperlien en 1er lieu ...
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 9 avril 2005 à 22:12
De toute façon l'explication est donnée dans la doc de la propriété AutoGenerateColumns :
"Remarque
Des colonnes déclarées explicitement peuvent être utilisées en conjonction avec des colonnes générées automatiquement. Lorsque vous utilisez les deux, les colonnes déclarées explicitement sont rendues en premier, suivies des colonnes générées automatiquement. Les colonnes générées automatiquement ne sont pas ajoutées à la collection Columns."
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 9 avril 2005 à 23:21
Ba le plus simple (à mon avis) est de désactiver la génération auto et de générer et d'ajouter toi même les colonnes qui l'étaient automatiquement puis d'ajouter ta colonne supplémentaire.