Sélection garantie de ligen de grille C#
ayouta.gfs
Messages postés
77
Statut
Membre
-
ayouta.gfs Messages postés 77 Statut Membre -
ayouta.gfs Messages postés 77 Statut Membre -
Bonjour,
Je travaille sur un projet sous C# .net où j'utilise un datagrid
je veux garantir qu'avant par exemple la suppression d'une ligne de grille (datagrid) , la ligne soit sélectionnée par l'utilisateur !
Comment est l'instruction ? et c'est quoi son espace de noms que je dois utiliser ?
merci pour la réponse
Je travaille sur un projet sous C# .net où j'utilise un datagrid
je veux garantir qu'avant par exemple la suppression d'une ligne de grille (datagrid) , la ligne soit sélectionnée par l'utilisateur !
Comment est l'instruction ? et c'est quoi son espace de noms que je dois utiliser ?
merci pour la réponse
8 réponses
-
Slt il te suffit juste de mettre un condition par exemple
if(datagrid.selectedItems.Count == 0)
ouif ( datadrid.selectedItems[0] == null)
Le deuxieme cas peut te servir pour caster dans un type personnel exemple tu affiche des données personnel de type Humain:
public string Civilité{get;set;} public string Nom{get;set;} public string Prénom{get;set;}
Tu peux crée uneList<Humain>
et fairedatagrid.ItemsSource = Talist" List<Humain>";
en ensuite tu peux fairevar a = datagrid.selectedItems[0] as Humain;
if(a!=null) { a.Nom...... } -
Salut , Merci bien pour votre passage
une question ,
if(datagrid.selectedItems.Count == 0)
ou
if ( datagrid.selectedItems[0] == null)
que signifie exactement ? svp -
selectedItems et de type IList<> c'est a dire que tu as une propriete qui permet de connaitre le nombre d'element dans cette liste la propriete c'est le Count donc si count == 0 cela veut dire que tu as aucun element selectionné et donc rien ne sert de continue ton traitement.
pour
if ( datagrid.selectedItems[0] == null) etant donnée que c'est une liste (cf plus haut) tu accéde aux donnée comme pour un tableau avec les [] et comme le premier index et 0 et si le premier index et vide cela veut dire que tu n'as pas de ligne selectrionné -
Bien , merci Nico# ,
mé le problème c'est ca marche pas dans mon code ! :'(
la condition n'est pas satisfaisante , soit je présélectionne ou non ! l'exécution passe ! une autre solution possible , vraiment ... !! -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Colle moi ton code pour voir
-
Volà mon code :)
if (this.gridEXEmp.SelectedItems.Count !=0)
{
DialogResult réponse = MessageBox.Show("Voulez vous vraiment Supprimer cet Employé?!", "Suppression", MessageBoxButtons.YesNo);
if (réponse == DialogResult.Yes)
{
try
{
String chcnx = "DELETE FROM Employé WHERE Matricule= @Matricule";
usrconnection uc = new usrconnection();
SqlConnection cnx = usrconnection.Connexion();
SqlCommand cmd = new SqlCommand(chcnx, cnx);
SqlParameter par = new SqlParameter("@Matricule", SqlDbType.BigInt, 8);
cmd.Parameters.Add(par);
par.Value = gridEXEmp.SelectedItems[0].GetRow().Cells["Matricule"].Text;
cmd.ExecuteNonQuery();
MessageBox.Show("Employé Supprimé");
this.gridEXEmp.Hide();
GridEmp frmT = new GridEmp();
frmT.ShowDialog();
usrconnection.clscnx(cnx);
}
catch (SqlException)
{
MessageBox.Show("Suppression impossible");
}
}
}
else { MessageBox.Show("Vous devez séléctionnez l'employé à supprimer ", "STOP"); } -
if (this.gridEXEmp.SelectedRows.Count !=0) { DialogResult réponse = MessageBox.Show("Voulez vous vraiment Supprimer cet Employé?!", "Suppression", MessageBoxButtons.YesNo); if (réponse == DialogResult.Yes) { try { String chcnx = "DELETE FROM Employé WHERE Matricule= @Matricule"; usrconnection uc = new usrconnection(); SqlConnection cnx = usrconnection.Connexion(); SqlCommand cmd = new SqlCommand(chcnx, cnx); SqlParameter par = new SqlParameter("@Matricule", SqlDbType.BigInt, 8); cmd.Parameters.Add(par); par.Value = gridEXEmp.SelectedItems[0].GetRow().Cells["Matricule"].Text; cmd.ExecuteNonQuery(); MessageBox.Show("Employé Supprimé"); this.gridEXEmp.Hide(); GridEmp frmT = new GridEmp(); frmT.ShowDialog(); usrconnection.clscnx(cnx); } catch (SqlException) { MessageBox.Show("Suppression impossible"); } } } else { MessageBox.Show("Vous devez séléctionnez l'employé à supprimer ", "STOP"); }
la ton code devrait fonctionner car ce n'est pas selectedItems mais SelectedRows cepandant je sais pas pourquoi tu as réussi a trouver cette proprieté car elle n'existe pas en winform j'ai confondu avec une combobox tu utilise quel outils pour developper
Ci joint mon test qui fonctionneusing System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication3 { public partial class Form1 : Form { List<Homme> _list = new List<Homme>(); public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { _list.Add(new Homme(){Nom = "Dupond",Prenom = "Nicolas"}); _list.Add(new Homme() { Nom = "Dupond", Prenom = "Nicolas" }); _list.Add(new Homme() { Nom = "Dupond", Prenom = "Nicolas" }); _list.Add(new Homme() { Nom = "Dupond", Prenom = "Nicolas" }); _list.Add(new Homme() { Nom = "Dupond", Prenom = "Nicolas" }); _list.Add(new Homme() { Nom = "Dupond", Prenom = "Nicolas" }); _list.Add(new Homme() { Nom = "Dupond", Prenom = "Nicolas" }); _list.Add(new Homme() { Nom = "Dupond", Prenom = "Nicolas" }); _list.Add(new Homme() { Nom = "Dupond", Prenom = "Nicolas" }); _list.Add(new Homme() { Nom = "Dupond", Prenom = "Nicolas" }); _list.Add(new Homme() { Nom = "Dupond", Prenom = "Nicolas" }); dataGridView1.DataSource = _list; } private void button1_Click(object sender, EventArgs e) { if (this.dataGridView1.SelectedRows.Count != 0) { DialogResult réponse = MessageBox.Show("Voulez vous vraiment Supprimer cet Employé?!", "Suppression", MessageBoxButtons.YesNo); if (réponse == DialogResult.Yes) { try { MessageBox.Show("Ok"); } catch (Exception) { MessageBox.Show("Suppression impossible"); } } } else { MessageBox.Show("Vous devez séléctionnez l'employé à supprimer ", "STOP"); } } } public class Homme { public string Nom { get; set; } public string Prenom { get; set; } } } -
Ma datagrid est sous janus winforms controls :) ! ey j'utlise le visual studio 2008
or que chez moi la propriété SelectedRows n'est pas possible ! :D je ne sais pas pourquoi ?!
Je vais réessayer Nico# merci pour ton intérêt !-
une solution qui m'a résolu le problème Nico# :D
la voilà
int i = -1;
try
{
string k = this.gridEXEmp.CurrentColumn.Index.ToString();
i = Convert.ToInt16(k);
}
catch
{
MessageBox.Show("Vous devez sélectionner une ligne où Supprimer", "STOP" , MessageBoxIcon.Warning);
}
if(i>=0)
{ // Supprimession }
merci pour votre patience et gentillesse
-