2010-03-20 6 views
2

J'ai une vue de données qui remplit les colonnes de différentes tables. Je veux filtrer la colonne en fonction d'une autre colonne de la ligne en cours. J'ai essayé d'utiliser l'événement d'entrée de cellule du datagridview puis j'ai filtré la colonne en filtrant la source de liaison sur la colonne de la ligne en cours.Filtrer la colonne datagridview en fonction de la ligne actuelle d'une autre colonne en C#

private void lINKDataGridView_CellEnter(object sender, DataGridViewCellEventArgs e) 
{ 
    this.pROBLEMBindingSource.Filter = "item_id = " + this.lINKDataGridView.Rows[e.RowIndex].Cells[dataGridViewTextBoxColumn4.Index].Value + ""; 
} 

Voilà comment je suis la source de liaison filtrage « problème » sur la cellule entrer cas de datagridview. Cela fonctionne correctement, mais j'obtiens une erreur: être: System.ArgumentException: la valeur DataGridViewComboBoxCell n'est pas valide.

Toute suggestion

Répondre

0

est-champ item_id est de type chaîne ou nombre type.If est un type de chaîne que vous devez mettre en seule cote.

Eh bien, vous pouvez utiliser comme ça

private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e) 
{ 
    // [ Item_id column ] Make sure to use the item_id column index 
    if (e.ColumnIndex == 5) 
     { 
      userBindingSource.Filter = "Item_Id = " + Convert.ToInt64(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()); 
     } 
    } 
+0

item_id est un entier. – user286546

+0

Ça ne marche pas aussi bien – user286546

Questions connexes