ostelen__
Messages postés6Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention18 février 2005
-
28 janv. 2005 à 01:00
Arthenius
Messages postés1182Date d'inscriptionmercredi 21 janvier 2004StatutMembreDernière intervention 6 septembre 2011
-
2 févr. 2005 à 18:45
Bonjour ou bonsoir :)
Je galère depuis un certain temps sur un problème qui peut paraître tout bête, et dont la solution est sûrement évidente, mais malgré mon acharnement je ne trouve toujours la cause du problème:
Je travaille en C# avec une base de données. J'ai des datagrid qui affichent mes données, mais je n arrive pas à changer la largeur des colonnes de mon datagrid.
J'ai tout essayé, j'ai lu plein de posts sur les Tablestyles et toujours rien.
J'ai beau ajouter un tablestyle à mon datagrid, et ajouter un typage de colonne a mon tablestyle, ca fait rien du tout, comme ci mon tablestyle n'etait pas appliqué.
ostelen__
Messages postés6Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention18 février 2005 30 janv. 2005 à 02:07
(je precise que je travaille en WinForm)
Merci Arthenius,
Mais ca ne marche toujours pas. J'ai copié collé ton code, tout bien vérifié et meme fait un update de la datagrid a la fin par superstition et rien ...
Les colonnes ne bougent pas, comme ci j'avais rien fait.
Est ce qu'il y a quelque chose que je ne fait pas ?
les noms des colonnes( ["INSLIB"] par exemple) est ce que ca correspond aux noms que je mets dans mes champs dans ma requete ? ou est ce que je peux mettre ce que je veux ?
Je sais pas aidez moi ou je vais me suicider, ca fait 2 semaines que je cherche et je toruve pas ...
ostelen__
Messages postés6Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention18 février 2005 1 févr. 2005 à 00:46
Tout d'abord merci de vos réponses
Voici exactement mon code (attention c'est long mais cest juste des copiés collé):
//ma requete
string text = "SELECT boite.id_boite as Id, boite.num_boite AS NumBoite, famille.nom_famille AS Famille, boite.libelle1 AS Lib1, boite.libelle2 AS Lib2, boite.libelle3 AS Lib3,
conteneur.num_conteneur AS Conteneur, boite.etat_boite AS Etat, boite.date_creation AS Creation, boite.date_expiration AS Destruction,
emplacement.site + emplacement.niveau + emplacement.travee + emplacement.[module] + emplacement.etagere AS Emplacement
FROM boite INNER JOIN
famille ON boite.id_famille = famille.id_famille INNER JOIN
conteneur ON boite.id_conteneur = conteneur.id_conteneur INNER JOIN
emplacement ON conteneur.id_emplacement = emplacement.id_emplacement INNER JOIN societe ON boite.id_societe societe.id_societe AND boite.id_societe societe.id_societe
WHERE (societe.id_societe = '10051415') and boite.etat_boite <> 'NOUVELLE'"
//je cree ma connexion
sql_com = new SqlCommand();
sql_com.CommandText = text;
sql_com.Connection = sql_conn;
SqlDataAdapter sql_adapter = new SqlDataAdapter();
sql_adapter.SelectCommand = sql_com;
sql_conn.Close();
sql_conn.Open();
sql_adapter.Fill(v_ds);
sql_conn.Close();
dt2 =
new DataTable("ds");
dt2 = v_ds.table[0];
//je retire la colonne 0 car je ne veux pas la fficher
dt2.Columns.RemoveAt(0);
//tout ce qui qui est avant cette ligne foncitonne, les données sont bien présentes dans ma datagrid1
//et voila le gros probleme ... la taille des mes colonnes :(
//1.Create a DataGridTableStyle object.
DataGridTableStyle TSAuthors =
new DataGridTableStyle();
//2.Set the grid table object's MappingName to a DataTable object's TableName.
TSAuthors.MappingName = "ds";
//3.Add DataGridColumnStyle objects, one for each grid column you want to show, to the GridColumnStylesCollection returned by the GridColumnStyles property.
//4.Set the MappingName of each DataGridColumnStyle object to the ColumnName of a DataColumn. DataGridColumnStyle TCFirstName =
new DataGridTextBoxColumn();
TCFirstName.MappingName = "NumBoite";
TCFirstName.HeaderText = "NumBoite";
TCFirstName.Width = 10;
TSAuthors.GridColumnStyles.Add(TCFirstName);
DataGridColumnStyle col2 =
new DataGridTextBoxColumn();
TCFirstName.MappingName = "Famille";
TCFirstName.HeaderText = "Famille";
TCFirstName.Width = 100;
TSAuthors.GridColumnStyles.Add(col2);
DataGridColumnStyle col3 =
new DataGridTextBoxColumn();
TCFirstName.MappingName = "Lib1";
TCFirstName.HeaderText = "Lib1";
TCFirstName.Width = 10;
TSAuthors.GridColumnStyles.Add(col3);
DataGridColumnStyle col4 =
new DataGridTextBoxColumn();
TCFirstName.MappingName = "Lib2";
TCFirstName.HeaderText = "Lib2";
TCFirstName.Width = 100;
TSAuthors.GridColumnStyles.Add(col4);
DataGridColumnStyle col5 =
new DataGridTextBoxColumn();
TCFirstName.MappingName = "Lib3";
TCFirstName.HeaderText = "Lib3";
TCFirstName.Width = 10;
TSAuthors.GridColumnStyles.Add(col5);
DataGridColumnStyle col6 =
new DataGridTextBoxColumn();
TCFirstName.MappingName = "Conteneur";
TCFirstName.HeaderText = "Conteneur";
TCFirstName.Width = 100;
TSAuthors.GridColumnStyles.Add(col6);
DataGridColumnStyle col7 =
new DataGridTextBoxColumn();
TCFirstName.MappingName = "Etat";
TCFirstName.HeaderText = "Etat";
TCFirstName.Width = 10;
TSAuthors.GridColumnStyles.Add(col7);
DataGridColumnStyle col8 =
new DataGridTextBoxColumn();
TCFirstName.MappingName = "Creation";
TCFirstName.HeaderText = "Creation";
TCFirstName.Width = 100;
TSAuthors.GridColumnStyles.Add(col8);
DataGridColumnStyle col9 =
new DataGridTextBoxColumn();
TCFirstName.MappingName = "Destruction";
TCFirstName.HeaderText = "Destruction";
TCFirstName.Width = 10;
TSAuthors.GridColumnStyles.Add(col9);
DataGridColumnStyle col10 =
new DataGridTextBoxColumn();
TCFirstName.MappingName = "Emplacement";
TCFirstName.HeaderText = "Emplacement";
TCFirstName.Width = 100;
TSAuthors.GridColumnStyles.Add(col10);
//5.Add the DataGridTableStyle object to the collection returned by TableStyles property. dataGrid1.TableStyles.Add(TSAuthors);
ostelen__
Messages postés6Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention18 février 2005 2 févr. 2005 à 18:32
Merci pour vos réponses,
J'ai été aidé par quelqu'un et maintenant ça marche.
Je signale la raison du problème pour archive, je n'affectait pas correctement mon mapping name au bon nom de ma source de donnée (mon datatable)
la mauvais méthode(que j'utilisais):
DataTable dt = new DataTable("ds");
DgTableStyle.MappingName = "ds" ;
la bonne méthode:
DataTable dt = new DataTable("ce qu on veut");
DgTableStyle.MappingName = dt.TableName ;
Puis pour chaque colonne mettre le maping name au nom de la colonne dans la requete