datagrid + dataset

datagrid + dataset - C#/.NET managed - Programmation

Marsh Posté le 07-01-2008 à 10:43:02    

Bonjour, je suis nouveau dans C# et je ne sais pas comment formater une cellule d'un dataGridView en fonction de la ligne du dataset correspondant.
 
J'ai donc un dataset associé à mon dataGrid
Pour formater ma celulle, je connecte à l'evenement CellFormatting
Mais, comment récuper la ligne qui correspond dans mon dataset ???
avec cette ligne, je peux regarder des valeurs et modifier l'apparence de ma celulle (en fait je veux modifier les couleurs pour distinguer plus facilement des etats).
J'ai bien vu databounditem, mais je ne sais pas quoi en faire.
 
 
Existe t-il des fonctions de recherche dans les datagridview ?? Par exemple pour trouvé une cellule qui contient 'toto' ?
Merci
 

Reply

Marsh Posté le 07-01-2008 à 10:43:02   

Reply

Marsh Posté le 07-01-2008 à 11:25:19    

C'est à dire ?
 
Ligne par ligne, tu veux formatter ta cellule en fonction de ta valeur c'est ça ?
 
Bah dans ton event DataBound tu peux accéder à chaque ligne une à une.

Reply

Marsh Posté le 07-01-2008 à 11:38:38    

oui, mais comment j'accède à la ligne de mon dataset qui correspondant à la ligne de mon datagrid ? je ne comprends pas

Reply

Marsh Posté le 07-01-2008 à 11:47:01    

c'est à dire ?
 
tu veux faire quoi au juste ?

Reply

Marsh Posté le 07-01-2008 à 12:13:17    

Chelou, y'a pas de DataBind() dans un DataGrivVeiw :heink:
 
Ben solution à la mano, mais pas top :

Code :
  1. private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
  2.        {
  3.            if (comboBox1.SelectedItem == null) return;
  4.  
  5.            foreach (DataGridViewRow dr in dataGridView1.Rows)
  6.            {
  7.                if ((int)dr.Cells[1].Value == (int)comboBox1.SelectedValue)
  8.                {
  9.                    dr.DefaultCellStyle.ForeColor = Color.Red;
  10.                }
  11.                else
  12.                {
  13.                    dr.DefaultCellStyle.ForeColor = Color.Black;
  14.                }
  15.            }
  16.        }


 
=> Passe les lignes du DataGridView en rouge lorsque la valeur dans la colonne 1 est égale à la valeur choisir dans une liste déroulante. J'espère que ça répond à ton besoin...


Message édité par MagicBuzz le 07-01-2008 à 12:14:53
Reply

Marsh Posté le 07-01-2008 à 13:35:13    

Non, apparement plus besoin de databind (??)
 
En fait, non tu ne réponds pas à ma question :-)
Ce je cherche à avoir c'est la ligne de mon dataset qui correpondont à une Row. Tu comprends ??
 
J'ai une base de donnée avec pleins de champs, mais j'en affiche que 3.
J'ai une colonne ou je veux changer sa couleur en fonction d'un champ de mon dataset (qui est lié à ma Grid) qui n'est pas affiché dans ma grid.
 
Je m'exprime peut-être mal, non ?

Reply

Marsh Posté le 07-01-2008 à 13:45:11    

Affiche ta colonne dans ta grid, et passe la en invisible, ce sera plus simple.
 
Pour mon exemple c'est ce que j'ai fait, cette colonne 1 n'est pas affichée

Reply

Marsh Posté le 07-01-2008 à 13:49:37    

Mais sinon, doit y avoir moyen de trouver un DataBind quelque part, c'est vraiment zarb qu'il n'y en ait pas !
 
-- Mais en tout cas, je trouve pas... Relou cet objet...


Message édité par MagicBuzz le 07-01-2008 à 14:18:49
Reply

Marsh Posté le 08-01-2008 à 19:34:17    

perso, ce n'est pas sur le dataset qu'il faut jouer avec l'affichage. Le dataset est un composant de stockage d'infos. Pas un composant visuel.  
La customisation, ça se passe via les DataGridView ou autre composant dans ce genre la.

Reply

Marsh Posté le 08-01-2008 à 20:23:25    

moi23372 a écrit :

perso, ce n'est pas sur le dataset qu'il faut jouer avec l'affichage. Le dataset est un composant de stockage d'infos. Pas un composant visuel.  
La customisation, ça se passe via les DataGridView ou autre composant dans ce genre la.


 
Pardon, mais je ne comprends pas ce que tu veux dire.

Reply

Marsh Posté le 08-01-2008 à 20:23:25   

Reply

Marsh Posté le 09-01-2008 à 13:15:29    

lol
ce n'est pas au dataset de se charger du display des cellules, du format, ou n'importe quoi. Cela c'est le rôle des composants visuels tel que le datagrid, ou autre composant dans le même genre.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed