none
Boucle for + autre form + colonne selectionner = insertion RRS feed

  • Question

  •  

    Bonjour,

     

    J'ai une form2 composé d'un dataGridView muni d'une colonne Selectionner. L'idée est que:

     

    "pour chaque ligne selectionner, je rajoute le composant dans la recette"

     

    voici donc mon code:

     

    Code Snippet

    for (int j = 0; j < _frmAddTheToRecette.kryptonDataGridView1.Rows[j].Cells["Selectionner"].Selected; j++ )

    {

         cGestThe.addTheToRecette(idThe, sQt, idRecette);

    }

     

     

    dont l'erreur est evidemment:

    Error 1 Operator '<' cannot be applied to operands of type 'int' and 'bool'

     

    Je me suis dit qu'il me faudrait caster tout ça -> .Selected as bool?).ToString();

     

    ça n'a pas fonctionner, puis, que je pourrais convertir les lignes selectionner en int :

    int.TryParse(_frmAdd....)...); ... Mais ça ne fonctionne pas non plus.

     

    Comment faire alors?

     

    Meilleure salutation

    mercredi 8 octobre 2008 08:37

Réponses

  • Je n'ai pas la syntaxe exacte sous la main, cependant voici la logique globale, fonctionnant sur des Lignes, et non des Cellules.


    Code Snippet
    List<Recette> recetteToAdd = new List<Recette>();
    foreach(DataGridViewRow row in _frmAddTheToRecette.kryptonDataGridView1.Rows) // pour chaque recette de la liste (chaque ligne du tableau)
    {
    if(((bool)row.Cells[0].Value)) // si la recette courante est cochée "sélectionnée" (on caste la valeur de la première colonne, en booléen, en supposant que tu ait ta case à cocher dans la première colonne)
    {
    recetteToAdd.Add(row.Value); // insère la recette dans ta liste (à remplacer par ton code d'insertion)
    }
    }
    vendredi 24 octobre 2008 12:26

Toutes les réponses

  • C'est que ton coté droit de ton opérateur retourne un booléen :

     

    Code Snippet

    _frmAddTheToRecette.kryptonDataGridView1.Rows[j].Cells["Selectionner"].Selected

     

     

    Es-ce que tu as essayé un for each à la place:

     

    Code Snippet

    foreach (DataGridViewCell cell in kryptonDataGridView1.SelectedCells)

    {

    ...

    }

     

     

    mercredi 8 octobre 2008 12:26
    Modérateur
  • Salut,

     

    Merci de ta réponse rapide, je n'avais pas essayé !

     

    Bon, et bien sa fonctionne....pas :}. Il me prends seulement le dernier selectionner.

     

    Code:

     

    Code Snippet

    // Insertion de la recette

    foreach (DataGridViewCell cell in _frmAddTheToRecette.kryptonDataGridView1.SelectedCells)

    {

    cGestThe.addTheToRecette(idThe, sQt, idRecette);

    }

     

     

     

    A+

     

    mercredi 8 octobre 2008 12:57
  • Je n'ai pas la syntaxe exacte sous la main, cependant voici la logique globale, fonctionnant sur des Lignes, et non des Cellules.


    Code Snippet
    List<Recette> recetteToAdd = new List<Recette>();
    foreach(DataGridViewRow row in _frmAddTheToRecette.kryptonDataGridView1.Rows) // pour chaque recette de la liste (chaque ligne du tableau)
    {
    if(((bool)row.Cells[0].Value)) // si la recette courante est cochée "sélectionnée" (on caste la valeur de la première colonne, en booléen, en supposant que tu ait ta case à cocher dans la première colonne)
    {
    recetteToAdd.Add(row.Value); // insère la recette dans ta liste (à remplacer par ton code d'insertion)
    }
    }
    vendredi 24 octobre 2008 12:26