我有一个网格控件,该控件从桌面Windows Forms应用程序中的数据库加载数据。但是,我还需要一个带有组合框(包含一些项)的新本地列,单击该组合框会将信息保存到数据库的另一个表中。
这是我的代码
DataTable dt = new DataTable();
string conStr = @"Data Source =...;Initial Catalog=...; Integrated Security=true;";
SqlConnection con = new SqlConnection(conStr);
SqlCommand com = new SqlCommand("SPS_PronosticoStock2", con);
com.Parameters.AddWithValue("@IdProducto", Convert.ToInt32(textBox3.Text));
com.Parameters.AddWithValue("@IdBodega", Convert.ToInt32(textBox4.Text));
com.Parameters.AddWithValue("@FechaInicio", dateTimePicker1.Value);
com.Parameters.AddWithValue("@FechaFin", dateTimePicker2.Value);
com.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(com);
try
{
con.Open();
da.Fill(dt);
}
catch (Exception)
{
throw;
}
finally
{
if (con.State == ConnectionState.Open)
con.Close();
}
gridControl1.DataSource = dt;
我尝试了组合框编辑,但是当我单击项目时,它们消失了,并且没有任何编辑,请有人帮我解决这个问题。
答案 0 :(得分:0)
请参阅以下内容: Unbound Column Combo Box Persistent Value
使用Unbound Columns。请查看Unbound Columns文章,以获取有关这方面的更多信息。
最好的方法是使用RepositoryItemLookUpEdit。只需将theRepositoryItemLookUpEdit.DataSource
属性设置为适当的数据源,将RepositoryItemLookUpEdit.DisplayMember
属性设置为应与显示文本匹配的列名,将RepositoryItemLookUpEdit.ValueMember
属性设置为应与编辑值。
参考文献:
Combobox within Xtragrid bound to column value
XtraGrid with comboBox column doesn't save value in grid
https://www.youtube.com/watch?v=bbNhg1Xn9O4
答案 1 :(得分:-1)
您的值未保存,因为您的列未绑定到数据字段。创建一个Unbound Column并将您的值保存在CustomUnboundColumnData事件处理程序中。