2011-01-01 25 views
1

Ich habe eine Datagridview an eine Bindingsource gebunden. Zwei der Spalten enthalten Werte, die mit den Primärschlüsseln in anderen Tabellen verknüpft sind. Anstatt die Primärschlüsselwerte anzuzeigen, möchte ich den Namen des Elements anzeigen, das dem Primärschlüssel zugeordnet ist. Mit anderen Worten, der Primärschlüsselwert kann 3 sein, aber ich möchte "Furnace 5" in der Datagridview statt 3 anzeigen (die es jetzt anzeigt).Anzeige verwandter Daten in einer datagridviewtextboxcolumn

Antwort

1

Es gibt mindestens vier Möglichkeiten, dies zu tun (von der leichtesten am schwersten zu)

1) Linq to DataSet Dies setzt voraus, eines typisierten Datasets mit zwei Tables Produkte und Produkttypen. Dies ist nicht erforderlich (sie nicht in der gleichen Datenmenge sein und die Product nicht über Datatable sein)

mit Linq zu Dataset .NET 3.5 und bis

Dim ProductList = _ 
      (From product In p.products.AsEnumerable() _ 
      Join types In p.productTypes.AsEnumerable() _ 
      On product.ProductTypeID Equals types.ProductTypeID _ 
      Select New With { 
       .ProductId = product.ProductID, _ 
       .Description = product.Description, _ 
       .Type = types.Description}).ToList 

     Me.DataGridView1.DataSource = ProductList 

2 erfordert) Rufen Sie die Daten so ab, wie Sie sie benötigen und binden Sie sie an die gewünschte Spalte

3) Verwenden Sie keine TextBoxColumn und verwenden Sie stattdessen ComboBoxDataColumn.

4) Erstellen Sie eine custom DataGridViewColumn, die die Suche ausführt.

+0

Danke, Conrad. Ich ging mit Vorschlag # 2, aber alle sehen wie gute Optionen aus. – blueshift

Verwandte Themen