2016-05-07 16 views
0

私はexampleを実装しました。これは、2つのテーブルを扱うMicrosoftから提供されています。マスター/詳細レイアウトマスターテーブルで複数選択が可能

私は、マスターグリッド内の選択に従って自動的に詳細グリッドを塗りつぶすのが好きです。しかし、マスターグリッド内の複数のカテゴリ(この例では「顧客」)を選択し、すべての詳細を取得する場合はどうすればよいですか?

この動作を実装する最善の方法は何でしょうか?

答えて

0

その場合は、フィルタリングを自分で行う必要があります。子グリッドをリレーションにバインドする代わりに、それを子テーブルにバインドします。次に、親グリッドの適切なイベントを処理し、次に、選択した親レコードに基づいて子データをフィルタリングします。例えば。

Private Sub parentDataGridView_SelectionChanged(sender As Object, e As EventArgs) Handles parentDataGridView.SelectionChanged 
    Dim parentIDs As New List(Of Object) 

    For Each selectedRow As DataGridViewRow In parentDataGridView.SelectedRows 
     Dim rowView = DirectCast(selectedRow.DataBoundItem, DataRowView) 

     parentIDs.Add(rowView("ParentID")) 
    Next 

    childBindingSource.Filter = If(parentIDs.Any(), 
            String.Format("ParentID IN ({0})", 
               String.Join(", ", 
                  parentIDs)), 
            String.Empty) 
End Sub 
+0

おそらく正しいでしょう。 DataGridViewで選択された行を処理していただきありがとうございます。 – AlexVB

関連する問題