2012-03-30 1 views
0

Ich habe eine DataGridView, die ich mit dem Formulardesigner an eine einzelne ODBC-Datenbanktabelle gebunden habe.Zeile zu Databound Datagridview hinzufügen, während bestimmte Spalten nicht sichtbar sind?

Die ODBC-Quelle ist eine Informix-Datenbank und die relevante Tabelle enthält eine automatisch inkrementierende Spalte, um den Primärschlüssel für die Tabelle zu generieren. Es gibt eine weitere Spalte, die von einer Einstellung im Formular abhängt. Beide Spalten sind auf Visible = False eingestellt.

Wenn ich die Einstellung "DataGridView" "Enable Adding" erlaube und eine neue Zeile zur DataGridView hinzufüge, bekomme ich den Fehler, dass die zweite Spalte Nullen nicht erlaubt (was korrekt ist).

Gibt es eine Möglichkeit, dass ich Benutzern erlauben kann, Zeilen direkt zu DataGridView hinzuzufügen, und dann programmgesteuert diesen fehlenden Wert zum Beispiel auf ein Ereignis setzen, oder muss ich auf eine Schaltfläche "Neue Zeile hinzufügen" zurückgreifen was fügt der DataSource eine neue Zeile hinzu?

Antwort

4

Sie können dem DataGridView Standardwerte mithilfe des Ereignisses DefaultValuesNeeded bereitstellen.

Der Code wird wie folgt aussehen:

private void dataGridView1_DefaultValuesNeeded(object sender, 
    System.Windows.Forms.DataGridViewRowEventArgs e) 
{ 
    e.Row.Cells["Region"].Value = "WA"; 
    e.Row.Cells["City"].Value = "Redmond"; 
    e.Row.Cells["PostalCode"].Value = "98052-6399"; 
    e.Row.Cells["Country"].Value = "USA"; 
    e.Row.Cells["CustomerID"].Value = NewCustomerId(); 
}