2010-12-13 7 views
1

Wie kann ich die DataGridViewColumn in einer DataGridView ändern, wenn Sie DataGridView.DataSource = DataSet.Table verwenden?Verwenden von DataSet mit DataGridView und Ändern von DataGridViewColumn

OleDbConnection connection = new OleDbConnection(...); 
OleDbDataAdapter adpCustomer = new OleDbDataAdapter(..); 
DataSet dsCustomer = new DataSet(); 
adpCustomer.Fill(dsCustomer, "customer"); 
DataGridView dgv = new DataGridView(); 
dgv.DataSource = dsCustomer.Tables[0]; 

// TODO: modify columns to use combobox, checkbox etc.. how? 

Vielen Dank im Voraus.

Antwort

0

Sie können Spalten nicht ändern. Wenn Sie eine ComboBoxColumn möchten, müssen Sie sie zuvor der DataGridView hinzufügen. Fügen Sie die Combobox-Spalte VOR dem Binden hinzu und legen Sie ihren DataPropertyName so fest, dass das Raster die korrekten Daten an diese Spalte bindet, anstatt eine neue zu erstellen.

Eine andere Möglichkeit, dies zu tun ist, wenn Sie können, strong-typed DataSet, weil es automatisch CheckBoxColumns für Ihre Bool-Spalten, etc ...

erstellen wird
0

Verwenden Sie das AutoGeneratingColumn-Ereignis des Datagrids. Dadurch erhalten Sie eine Kennung für die Spalte, die erstellt wird, und Sie können die Spalte nach Bedarf ändern. Der folgende Code direkt aus der VS2010-Hilfedatei:

Private Sub DG1_AutoGeneratingColumn(ByVal sender As Object, ByVal e As DataGridAutoGeneratingColumnEventArgs) 
    Dim headername As String = e.Column.Header.ToString() 
     If headername = "FirstName" Then 
     e.Column.Header = "First Name" 
    End If 
End Sub 
Verwandte Themen