0
我有一個帶有datagridview的粗糙表單。 這裏是我的「刷新」代碼:c#數據綁定修改網格值
private void Recuperar()
{
DataSet ds = new DataSet();
string CommandText = "SELECT * from sectores order by sector";
SQLiteDataAdapter adapter = new SQLiteDataAdapter(CommandText, Variables.Conexion);
DataTable table = new DataTable();
table.TableName = "sectores";
adapter.Fill(table);
grilla.DataSource = table;
grilla.Refresh();
grilla.Columns["sector_id"].Visible = false;
grilla.Columns["clave"].Visible = false;
grilla.Columns["sector"].HeaderText = "Sector";
grilla.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
SetDataBinding();
}
private void SetDataBinding()
{
this.textBoxId.DataBindings.Clear();
this.textBoxId.DataBindings.Add(new System.Windows.Forms.Binding("Text", grilla.DataSource, "sector_id"));
this.tbSector.DataBindings.Clear();
this.tbSector.DataBindings.Add(new System.Windows.Forms.Binding("Text", grilla.DataSource, "sector"));
this.tbClave1.DataBindings.Clear();
this.tbClave1.DataBindings.Add(new System.Windows.Forms.Binding("Text", grilla.DataSource, "clave"));
this.tbClave2.DataBindings.Clear();
this.tbClave2.DataBindings.Add(new System.Windows.Forms.Binding("Text", grilla.DataSource, "clave"));
}
在我的「添加」按鈕的代碼,我清楚我的控件(被綁定到DataGrid控件)的文本,以便用戶插入新的值。
private void btn_agregar_Click(object sender, EventArgs e)
{
grilla.ClearSelection();
accion = DataRowAction.Add;
SetEstado();
}
private void SetEstado()
{
if (accion == DataRowAction.Add)
btn_guardar.Text = "Agregar";
if (accion == DataRowAction.Change)
btn_guardar.Text = "Modificar";
if (accion == DataRowAction.Delete)
btn_guardar.Text = "Eliminar";
if (accion == DataRowAction.Nothing)
btn_guardar.Text = "Guardar";
groupBoxControles.Enabled = accion == DataRowAction.Add || accion == DataRowAction.Change;
PanelDerechaBotones.Enabled = accion != DataRowAction.Nothing;
panelAbajo.Enabled = accion == DataRowAction.Nothing;
grilla.Enabled = accion == DataRowAction.Nothing;
if (accion == DataRowAction.Add)
{
textBoxId.Text = "0";
tbSector.Text = "";
tbClave1.Text = "";
tbClave2.Text = "";
}
if (accion == DataRowAction.Add || accion == DataRowAction.Change)
{
tbSector.Focus();
}
}
問題是,當用戶取消此操作時,網格中選定的行現在看起來全部爲空。 (將空值從控件移動到網格)
我知道我錯過了一些東西,但不知道是什麼。 感謝有人幫助我。
取消按鈕代碼
private void btn_cancelar_Click(object sender, EventArgs e)
{
accion = DataRowAction.Nothing;
SetEstado();
//((DataTable)grilla.DataSource).RejectChanges();
}
我添加了取消按鈕代碼 –
我嘗試重新綁定後取消按鈕,但沒有工作 –
最後我解決了它與一個簡單的grid.Refresh()後拒絕更改數據集。不管怎麼說,還是要謝謝你 –