Postgres から返される にDataGridView
バインドされるを作成しました。DataTable
dgOrderLines.DataSource = Program.DB.GetView(view);
私はイベントを実装しCellEndEdit
ました:
dgOrderLines.CellEndEdit +=
new DataGridViewCellEventHandler(dgOrderLines_CellEndEdit);
ここで、フィールドの編集を開始すると、グリッドは自動的に「新しいレコード」をビューに移動し、編集したレコードが保存された場合に使用できます。
ただし、から「新しいレコード」を更新するとCellClick
、ユーザーがクリックしてDataGridViewButtonColumn
も追加されません。
DataGrid
はバインドされているため、手で追加することはできません。
セルを編集するためのコード:
void dgOrderLines_CellEndEdit(object sender, DataGridViewCellEventArgs e) {
// Get the edited cell
DataGridViewCell cell = dgOrderLines.Rows[e.RowIndex].Cells[e.ColumnIndex];
string column_name = dgOrderLines.Columns[e.ColumnIndex].Name;
if (cell.Value != null) {
UpdateField(e.RowIndex, column_name, cell.Value.ToString());
}
}
ボタンの使用時に行を更新するには、次のようにします。
private void dgOrderLines_CellClick(object sender, DataGridViewCellEventArgs e) {
if (dgOrderLines.Columns[e.ColumnIndex].CellType.
Name.Equals("DataGridViewButtonCell")) {
// art.SelectedArticles[0] holds the articleid for this record
UpdateField(e.RowIndex, "articleid", "1234");
}
}