2014-05-09 1 views
0

J'ai un formulaire avec un DataSource lié à un bindingNavigator. Ce DataSet inclut un identifiant unique que je veux utiliser (lors de la navigation vers un autre enregistrement) pour filtrer un deuxième ensemble de données et remplir un DataGrid avec. J'utilise un fichier mdf db avec une connexion configurée dans la fenêtre de l'explorateur de base de données. Ensuite, dans la fenêtre des sources de données, j'ai 2 DataSets, 1 qui produit l'identifiant unique et celui qui a besoin de filtrage sur cet identifiant.Filtrer une grille de données à une valeur renvoyée par un bindingNavigator lié à une autre source de données

Comment puis-je filtrer le second DataSet (et le DataGrid lié) sur une colonne dans le premier?

EDIT: Il n'y a pas beaucoup de code car la liaison est effectuée via l'interface graphique. Voici l'événement de chargement de forme

private void frmS26_Load(object sender, EventArgs e) 
    { 
     this.accountMonthsTableAdapter.Fill(this.dsAccountMonths.accountMonths); 
    } 

Ce DataSet a uniqueID en elle.

EDIT 2: Si j'explique ce que je suis après cela peut aider. J'ai une table de transactions avec chaque enregistrement contenant un champ appelé month_id. Month_id est une clé primaire unqiue (appelée id) dans une autre table (accountMonths). Le bindingNavigator est défini sur le DataSet accountMonths (chaque enregistrement est un mois calendaire). Comme un mois est sélectionné dans le navigateur, la grille de données doit être filtrée sur le champ month_id en fonction de l'identifiant du navigateur. J'espère que cela a du sens.

+0

montre une partie du code –

Répondre

0

Vous pouvez utiliser la méthode événementielle BindingSource_CurrentChanged (qui est déclenchée lorsque vous naviguez à l'aide de bindingNavigator), vous pouvez utiliser l'objet courant de la source de liaison et obtenir son ID, en fonction de cet ID. .

private void xBindingSource_CurrentChanged(object sender, EventArgs e) 
    { 
      DataRow dr = (xBindingSource.Current as DataRowView).Row; 
      int id=dr["id"] 
      FilterOtherDataSource(id); //? 
    } 
Questions connexes