Question DataGrid et DataTable

Plus d'informations
il y a 14 ans 5 mois #5485 par Chiqo
DataGrid et DataTable a été créé par Chiqo
Bonjour à tous !


Je suis confronté à un nouveau problème, c'est pourquoi je sollicite (une fois de plus) votre aide ! ;)


Alors voilà, j'ai généré une DataGrid en powershell, avec des données contenu dans une DataTable (via une requête SQL). Maintenant, je souhaiterais simplement récupérer les données de la ligne sélectionnée par un utilisateur.

Voila comment je remplis ma grid :

[code:1]

$DT = New-Object System.Data.DataTable

#remplissage des columns

$DG.DataSource = $DT.psObject.baseobject

[/code:1]

J'imagine qu'il faut faire un truc du genre :
[code:1]
$DG.Add_DoubleClick({
$DG.GetSelectedValue()
})
[/code:1]
(Je me rappel plus du nom des méthodes testées, j'avais plusieurs tests sans succès :/)

J'avais aussi testé une méthode \"GetDataBinding\" ou une méthode se rapprochant de cela, mais sans succès également...

J'imagine que c'est un \"classique\" pour les développeurs .NET.

Merci de votre aide :)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 5 mois #5486 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:DataGrid et DataTable
Chiqo écrit:

J'imagine que c'est un \"classique\" pour les développeurs .NET.

Oui, mais pas que.
C'est dans les données transmisent au gestionnaire d'événement qu'il faut aller chercher l'info, un exemple :
[code:1]
private void DtGrdVwCSV_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{
DataTable table = (DataTable)DtGrdVwCSV.DataSource;
DataRow row = table.Rows[e.RowIndex];

using (FrmDetail Detail = new FrmDetail(this,row,false))
{
row.BeginEdit();
if (Detail.ShowDialog() == DialogResult.OK)
{ table.AcceptChanges(); }
else
{ row.CancelEdit(); }
}
}
[/code:1]
Donc sous PowerShell, le paramètre e est égale à $_.

Un exemple .<br><br>Message édité par: Laurent Dardenne, à: 14/10/09 20:02

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 5 mois #5490 par Chiqo
Réponse de Chiqo sur le sujet Re:DataGrid et DataTable
Encore une fois, merci pour aide.

J'ai mis un peu de temps en lisant le code de MOW, avant de lancer un

[code:1]Get-Alias %[/code:1]

pour comprendre et me mettre sur la bonne piste.

Pour info, la ligne qu'il faut :

[code:1]$script:dgs[$i].Add_DoubleClick({$this.SelectedRows | ForEach-Object {Write-Host $_.DataboundItem.Row.item(\&quot;ID\&quot;«»)}[/code:1]

Pour le gestionnarie d'évènement, si j'ai bien compris, les seules données qui lui sont transmises le sont via un objet de type MouseEventArgs (type obtenu par un $_.GetType()). Cet objet ne contient pas grand chose (coordonnées de la souris, etc...et pas la ligne sélectionnée) :

msdn.microsoft.com/fr-fr/library/system....operties(VS.80).aspx

Enfin mon problème est résolu, merci beaucoup ;)

*edit* pas trouvé comment marqué en \&quot;résolu\&quot; :x<br><br>Message édité par: Chiqo, à: 15/10/09 10:30

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 5 mois #5496 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:DataGrid et DataTable
Chiqo écrit:

Pour le gestionnarie d'évènement, si j'ai bien compris, les seules données qui lui sont transmises le sont via un objet de type MouseEventArgs

Oui, cela dépend de la signature du délégué, selon les besoins ils peuvent utiliser une instance d'une classe dérivée de EventArgs.
Chiqo écrit:

Cet objet ne contient pas grand chose (coordonnées de la souris, etc...et pas la ligne sélectionnée)

Il contient des infos propres à l'événement demandé, le choix de l'événement à ici son importance, ensuite l'objet peux proposer des méthodes de translation de coordonnées graphiques en ligne,colonne...
Chiqo écrit:

*edit* pas trouvé comment marqué en \&quot;résolu\&quot;

En modifiant le titre.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.093 secondes
Propulsé par Kunena