Question [Résolu] DataGridView remplissage par colonne
- Yohann Journiac
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 11
- Remerciements reçus 0
il y a 7 ans 7 mois #22206
par Yohann Journiac
Réponse de Yohann Journiac sur le sujet Re:DataGridView remplissage par colonne
Oui c'est vrai j'ai oublié de copier le code sur ma clé.
C'est au boulot, je vous le copie pour demain.
Merci de votre aide.
C'est au boulot, je vous le copie pour demain.
Merci de votre aide.
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 7 ans 7 mois #22208
par Philippe
Réponse de Philippe sur le sujet Re:DataGridView remplissage par colonne
salut Juronius
je suis tombé par hazard sur ce site de formation , je pense qu'il doit être possible d'actualisé les données du tableau qu'il affiche
je suis tombé par hazard sur ce site de formation , je pense qu'il doit être possible d'actualisé les données du tableau qu'il affiche
Connexion ou Créer un compte pour participer à la conversation.
- Yohann Journiac
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 11
- Remerciements reçus 0
il y a 7 ans 7 mois #22209
par Yohann Journiac
Réponse de Yohann Journiac sur le sujet Re:DataGridView remplissage par colonne
Merci mais je n'ai pas trouvé l'info.
Sinon voici une partie du code :
[code:1]
$mDataGrid1 = New-Object System.Windows.Forms.DataGridView
$mDataGrid1.Text=\"DataGrid1\"
$mDataGrid1.Top=\"40\"
$mDataGrid1.Left=\"190\"
$mDataGrid1.Anchor=\"Left,Top\"
$mDataGrid1.ColumnCount = 14
$mDataGrid1.Columns[0].Name = \"Interface Description (ifDescr)\"
$mDataGrid1.Columns[1].Name = \"Interface Name\"
$mDataGrid1.Columns[2].Name = \"Interface Description (ifAlias)\"
$mDataGrid1.Columns[3].Name = \"Interface Type\"
$mDataGrid1.Columns[4].Name = \"VLAN\"
$mDataGrid1.Columns[5].Name = \"Status\"
$mDataGrid1.Columns[6].Name = \"Speed\"
$mDataGrid1.Columns[7].Name = \"Mode\"
$mDataGrid1.Columns[8].Name = \"MAC Address\"
$mDataGrid1.Columns[9].Name = \"IP Address\"
$mDataGrid1.Columns[10].Name = \"Hostname assigned to IP\"
$mDataGrid1.Columns[11].Name = \"Interface Manufacturer\"
$mDataGrid1.Columns[12].Name = \"Last Change Time\"
$mDataGrid1.Columns[13].Name = \"ifIndex\"
$mDataGrid1.Columns[13].Width = 50
$mDataGrid1.Size = New-Object System.Drawing.Size(850,800)
$MyForm.Controls.Add($mDataGrid1)
$mButton1 = New-Object System.Windows.Forms.Button
$mButton1.Text=\"Map Switch\"
$mButton1.Top=\"36\"
$mButton1.Left=\"28\"
$mButton1.Anchor=\"Left,Top\"
$mButton1.Size = New-Object System.Drawing.Size(100,23)
$MyForm.Controls.Add($mButton1)
$mButton1.Add_Click( {
$mButton1.Enabled = $False
$dec = ScanSwitchToPort ($mTextBox1.Text) $PortNum
$hex = AddrDecToHex $dec $PortNum
} )
function ScanSwitchToPort ($server, $PortNum) {
$MAC = Invoke-SNMPwalk $server \"2\" $PortNum
ForEach ($_ in $MAC.Data) {$mdataGrid1.Rows.Add(\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", $_)}
return $MAC
}
function AddrDecToHex ($Decimal, $PortNum) {
$AddrDec = ($Decimal.OID).Replace($PortNum+\".\", \"\"«»)
$Hex = @()
ForEach ($Dec in $AddrDec) {
$Hex += $Dec.Split(\".\"«») | FOREACH {[CONVERT]::toString($_,\"16\"«»)}
}
$AddrHex = @()
For ($j=0; $j -lt $Hex.Count; $j=$j+6) {
For ($i= $j; $i -lt $j+6; $i++) {
if ($Hex[$i].Length -eq \"1\"«»)
{$Temp += \":\"+($Hex[$i]).Insert(\"0\", \"0\"«»)}
else {$Temp += \":\"+$Hex[$i]}
}
$AddrHex += $Temp.Remove(0,1)
Remove-Variable Temp
}
ForEach ($_ in $AddrHex) {$mdataGrid1.Rows.Add(\"\", \"\", \"\", \"\", \"\", \"\", \"\", $_, \"\", \"\", \"\", \"\", \"\", \"\"«»)}
return $AddrHex
}
[/code:1]
Je souhaite juste remplir une à plusieurs colonne par fonction, que l'on puisse voir les restitutions de résultats pendant le chargement plutôt que d'attendre toute les instructions.
Merci de votre aide.
Sinon voici une partie du code :
[code:1]
$mDataGrid1 = New-Object System.Windows.Forms.DataGridView
$mDataGrid1.Text=\"DataGrid1\"
$mDataGrid1.Top=\"40\"
$mDataGrid1.Left=\"190\"
$mDataGrid1.Anchor=\"Left,Top\"
$mDataGrid1.ColumnCount = 14
$mDataGrid1.Columns[0].Name = \"Interface Description (ifDescr)\"
$mDataGrid1.Columns[1].Name = \"Interface Name\"
$mDataGrid1.Columns[2].Name = \"Interface Description (ifAlias)\"
$mDataGrid1.Columns[3].Name = \"Interface Type\"
$mDataGrid1.Columns[4].Name = \"VLAN\"
$mDataGrid1.Columns[5].Name = \"Status\"
$mDataGrid1.Columns[6].Name = \"Speed\"
$mDataGrid1.Columns[7].Name = \"Mode\"
$mDataGrid1.Columns[8].Name = \"MAC Address\"
$mDataGrid1.Columns[9].Name = \"IP Address\"
$mDataGrid1.Columns[10].Name = \"Hostname assigned to IP\"
$mDataGrid1.Columns[11].Name = \"Interface Manufacturer\"
$mDataGrid1.Columns[12].Name = \"Last Change Time\"
$mDataGrid1.Columns[13].Name = \"ifIndex\"
$mDataGrid1.Columns[13].Width = 50
$mDataGrid1.Size = New-Object System.Drawing.Size(850,800)
$MyForm.Controls.Add($mDataGrid1)
$mButton1 = New-Object System.Windows.Forms.Button
$mButton1.Text=\"Map Switch\"
$mButton1.Top=\"36\"
$mButton1.Left=\"28\"
$mButton1.Anchor=\"Left,Top\"
$mButton1.Size = New-Object System.Drawing.Size(100,23)
$MyForm.Controls.Add($mButton1)
$mButton1.Add_Click( {
$mButton1.Enabled = $False
$dec = ScanSwitchToPort ($mTextBox1.Text) $PortNum
$hex = AddrDecToHex $dec $PortNum
} )
function ScanSwitchToPort ($server, $PortNum) {
$MAC = Invoke-SNMPwalk $server \"2\" $PortNum
ForEach ($_ in $MAC.Data) {$mdataGrid1.Rows.Add(\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", $_)}
return $MAC
}
function AddrDecToHex ($Decimal, $PortNum) {
$AddrDec = ($Decimal.OID).Replace($PortNum+\".\", \"\"«»)
$Hex = @()
ForEach ($Dec in $AddrDec) {
$Hex += $Dec.Split(\".\"«») | FOREACH {[CONVERT]::toString($_,\"16\"«»)}
}
$AddrHex = @()
For ($j=0; $j -lt $Hex.Count; $j=$j+6) {
For ($i= $j; $i -lt $j+6; $i++) {
if ($Hex[$i].Length -eq \"1\"«»)
{$Temp += \":\"+($Hex[$i]).Insert(\"0\", \"0\"«»)}
else {$Temp += \":\"+$Hex[$i]}
}
$AddrHex += $Temp.Remove(0,1)
Remove-Variable Temp
}
ForEach ($_ in $AddrHex) {$mdataGrid1.Rows.Add(\"\", \"\", \"\", \"\", \"\", \"\", \"\", $_, \"\", \"\", \"\", \"\", \"\", \"\"«»)}
return $AddrHex
}
[/code:1]
Je souhaite juste remplir une à plusieurs colonne par fonction, que l'on puisse voir les restitutions de résultats pendant le chargement plutôt que d'attendre toute les instructions.
Merci de votre aide.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 7 ans 7 mois #22210
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:DataGridView remplissage par colonne
Laurent Dardenne écrit:
Qu'est-ce que tu veux qu'on fasse avec ça
Tu y ajoutes des lignes, mais le pb énoncé porte sur des colonnes...
En passant évite ce type de construction :
[code:1]ForEach ($_ in $MAC.Data)[/code:1]
Ceci est tout de même plus lisible :
[code:1]ForEach ($Data in $MAC.Data)[/code:1]
Un exemple simple ET fonctionnelUn exemple simple qui reproduit ton pb suffit.
Qu'est-ce que tu veux qu'on fasse avec ça
Tu y ajoutes des lignes, mais le pb énoncé porte sur des colonnes...
En passant évite ce type de construction :
[code:1]ForEach ($_ in $MAC.Data)[/code:1]
Ceci est tout de même plus lisible :
[code:1]ForEach ($Data in $MAC.Data)[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Yohann Journiac
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 11
- Remerciements reçus 0
il y a 7 ans 7 mois #22211
par Yohann Journiac
Réponse de Yohann Journiac sur le sujet Re:DataGridView remplissage par colonne
Bonjour.
Heu ... donc.
Je crée mon DataGrid et je déclare mes en-tête de colonne.
Mon problème est que je ne connais pas la méthode pour remplir une colonne du DataGrid et ensuite remplir une seconde colonne et ce pas forcément dans le même ordre de déclaration donc en faite c'est pour cela le :
[code:1]
ForEach ($Data in $MAC.Data) {$mdataGrid1.Rows.Add(\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", $Data)}
[/code:1]
puis le :
[code:1]
ForEach ($Hexa in $AddrHex) {$mdataGrid1.Rows.Add(\"\", \"\", \"\", \"\", \"\", \"\", \"\", $Hexa, \"\", \"\", \"\", \"\", \"\", \"\")}
[/code:1]
Le résultat donne :
\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", $Data
\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", $Data
\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", $Data
\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", $Data
\"\", \"\", \"\", \"\", \"\", \"\", \"\", $Hexa, \"\", \"\", \"\", \"\", \"\", \"\"
\"\", \"\", \"\", \"\", \"\", \"\", \"\", $Hexa, \"\", \"\", \"\", \"\", \"\", \"\"
\"\", \"\", \"\", \"\", \"\", \"\", \"\", $Hexa, \"\", \"\", \"\", \"\", \"\", \"\"
\"\", \"\", \"\", \"\", \"\", \"\", \"\", $Hexa, \"\", \"\", \"\", \"\", \"\", \"\"
Ne peut'on pas faire de Rows.Add() sur une colonne en particulier et recommencer plus tard pour une autre colonne ?
Merci.
Message édité par: Juronius, à: 26/08/16 13:41
Message édité par: Juronius, à: 26/08/16 13:42<br><br>Message édité par: Juronius, à: 26/08/16 13:44
Heu ... donc.
Je crée mon DataGrid et je déclare mes en-tête de colonne.
Mon problème est que je ne connais pas la méthode pour remplir une colonne du DataGrid et ensuite remplir une seconde colonne et ce pas forcément dans le même ordre de déclaration donc en faite c'est pour cela le :
[code:1]
ForEach ($Data in $MAC.Data) {$mdataGrid1.Rows.Add(\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", $Data)}
[/code:1]
puis le :
[code:1]
ForEach ($Hexa in $AddrHex) {$mdataGrid1.Rows.Add(\"\", \"\", \"\", \"\", \"\", \"\", \"\", $Hexa, \"\", \"\", \"\", \"\", \"\", \"\")}
[/code:1]
Le résultat donne :
\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", $Data
\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", $Data
\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", $Data
\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", $Data
\"\", \"\", \"\", \"\", \"\", \"\", \"\", $Hexa, \"\", \"\", \"\", \"\", \"\", \"\"
\"\", \"\", \"\", \"\", \"\", \"\", \"\", $Hexa, \"\", \"\", \"\", \"\", \"\", \"\"
\"\", \"\", \"\", \"\", \"\", \"\", \"\", $Hexa, \"\", \"\", \"\", \"\", \"\", \"\"
\"\", \"\", \"\", \"\", \"\", \"\", \"\", $Hexa, \"\", \"\", \"\", \"\", \"\", \"\"
Ne peut'on pas faire de Rows.Add() sur une colonne en particulier et recommencer plus tard pour une autre colonne ?
Merci.
Message édité par: Juronius, à: 26/08/16 13:41
Message édité par: Juronius, à: 26/08/16 13:42<br><br>Message édité par: Juronius, à: 26/08/16 13:44
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 7 ans 7 mois #22212
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:DataGridView remplissage par colonne
Juronius écrit:
Juronius écrit:
Il suffit donc d'adresser les indices, un exemple . C'est comme un tableau à deux dimensions, ici il s'agit de deux collections imbriqués.
Il faut un tant soit peu étudier l'objet que l'on manipule.Mon problème est que je ne connais pas la méthode pour remplir une colonne du DataGrid
Juronius écrit:
Si, une grille est constituée de lignes(Row) qui contiennent des colonnes/des cellules (Cells).Ne peut on pas faire de Rows.Add() sur une colonne en particulier et recommencer plus tard pour une autre colonne ?
Il suffit donc d'adresser les indices, un exemple . C'est comme un tableau à deux dimensions, ici il s'agit de deux collections imbriqués.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.090 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les initiés
- [Résolu] DataGridView remplissage par colonne