Bonjour,
Je souhaiterais attribuer dynamiquement une valeur a une cellule d'un DataGrid.
Cependant, je n'ai trouvé aucune propriété .Text ou .Value ???
Comment faire ?
Merci
Bonjour,
Je souhaiterais attribuer dynamiquement une valeur a une cellule d'un DataGrid.
Cependant, je n'ai trouvé aucune propriété .Text ou .Value ???
Comment faire ?
Merci
et ca, ca ne va pas..?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 DataGridView d = new DataGridView(); d.Rows[2].Cells[2].Value = 2;
Vous devez utiliser la propriété Item de l'objet DataGrid.
En principe, tous les controles Data sont conçus pour être facilement lié avec une base de données.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 DataGridView d = new DataGridView(); d.Item(2,2)=2;
Et vous le trouvez ou ce controle DataGridView ???
moi je n'ai que DataGrid ou DataView !?
[MAJ]
Apres qq recherche sur google, j'ai trouvé que le dataGridView était une nouveauté du Framework .Net 2.0 !
Cependant, j'ai oublié de préciser que j'étais sous Visual Studio 2003, dc .Net 1.1...
WOLO Laurent t'a tout de même montrer la piste
transforme en
Code : Sélectionner tout - Visualiser dans une fenêtre à part this.DataGrid1(numeroLigne, numeroColonne) = "valeur à afficher";
bah j'ai une erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part this.dataGrid' désigne 'champ' où 'méthode' était attendu
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 this.DataGrid1(numeroLigne, numeroColonne).Text = "valeur à afficher";
non :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 this.DataGrid1(numeroLigne, numeroColonne).Value= "valeur à afficher";
Ben t'aurais pu corriger ma traduction C# approximative
Code : Sélectionner tout - Visualiser dans une fenêtre à part this.DataGrid1[numeroLigne, numeroColonne] = "valeur à afficher";
la propriété Cells n'existe pas
sinon, ca serait trop beau ! lol
je te comprends pas je viens de te donner la réponses corrigée avec la modification des parenthèses en crochetsEnvoyé par linuxludo
de plus ce n'est pas Cells mais Item
>>meuh non Morpheus une DataGridCell n'a jamais eu ces propriétés, t'aurais dû voir mes parenthèses inappropriées de vbciste
Ok, ca c'est bon, ca marche !!!!Envoyé par neguib
Merci...
Maintenant, autre pb ! (je sais, je suis chiant lol)
J'ai un data grid et un dataset...
je voudrais qu'une table de mon dataset soit automatiquement modifiée qd je modifie d'autre table...
soit un petit peu plus precis crois tu réellement avoir donné suffisamment sur ton architecture pour que moi qui ne l'ai pas devant les yeux je puisses jouer aux devinettes
Désolé...
Voici mon architecture :
Je précise toute fois que je me sert du dataGrid avec AUCUNE BDD !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 DataSet + Table0 + Col0 + Col1 + Table1 + Col0 + Col1 + Col2 + Col3 + Table2 + Col0 + Col1 + Col2 + Col3 + Col4 + Table3 + Col0 + Col1 + Col2 + Table4 + Col0 + Col1 + Col2 + Table5 + Col0 + Col1 + Col2 + Col3 + Col4 + Col5
C'est juste pour mettre en forme mes données...(et puis je trouvais ce composant pas mal niveau design pour mon appli).
Chaque table ne possedera que une ligne !
Chaque champs est de type System.Decimal sauf Table5.Col5 qui est bool.
Donc en fait, je souhaite afficher dans la table 5, la somme des champs d'une table.
Plus concretement :
Table5.Col0 = Somme de la ligne0 de Table0
Table5.Col1 = Somme de la ligne0 de Table1
Table5.Col2 = Somme de la ligne0 de Table2
Table5.Col3 = Somme de la ligne0 de Table3
Table5.Col4 = Somme de la ligne0 de Table4
Table5.Col5 = Si Somme (Table5.Col0 à Table5.Col4) > 50 alors true sinon false
Voilou...j'espere que j'ai bien fourni ts les renseignements qu'il te faut pour pouvoir m'aider...
Merci bcp
Globalement l'idée serait que tu dérives ton propre DataSet typé qui capture l'Événement DataTable.RowChanged pour Table0 à Table4 afin de traiter la modification effectuée vers Table5
Par exemple (c'est du vite fait donc à perfectionner)
J'espère que Table5 est elle même dérivée de DataTable afin d'automatiser ses differents calculs lors d'une modif d'une de ses colonnes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 using System; using System.Data; //... public class MyDataSet : DataSet { //...quelquepart lors de l'initialisation this.Tables["Table0"].RowChanged += new DataRowChangeEventHandler(this.RowChanged); this.Tables["Table1"].RowChanged += new DataRowChangeEventHandler(this.RowChanged); this.Tables["Table2"].RowChanged += new DataRowChangeEventHandler(this.RowChanged); this.Tables["Table3"].RowChanged += new DataRowChangeEventHandler(this.RowChanged); this.Tables["Table4"].RowChanged += new DataRowChangeEventHandler(this.RowChanged); //... public void RowChanged(object sender, DataRowChangeEventArgs e) { //... par exemple if (e.Action == DataRowAction.Change) { string tableName = ((DataTable) sender).TableName; DataRow dr = e.Row; // faire la modif necessaire vers la colonne concernée dans Table5 ... } } //... }
bon j'ai pas trop reussi cette solution...
Mais j'en ai trouvé une autre :
Merci encore a vous tous pour m'avoir aider...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 private void Form_Load(object sender, System.EventArgs e) { this.dataSet.Tables[5].Rows.Add(new object[6]); } private void dataGrid_CurrentCellChanged(object sender, System.EventArgs e) { this.dataSet.Tables[5].Rows[0][0] = MaValeur; }
Je vous en suis tres reconnaissant...
Mouais apparemment t'es pas à un bricolage près
CurrentCellChanged n'a jamais voulu dire que la valeur a été modifié
Il n'est pas logique d'utilisé des affichages de l'Interface utilisateur (Datagrid) alors qu'il s'agit ici des données sousjascentes soit le DataSet en ce qui te concerne
Mais bon tu sembles heureux ainsi
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager