如何将Combobox列添加到GridControl?

时间:2019-04-12 12:50:37

标签: winforms devexpress gridcontrol devexpress-gridcontrol

我有一个网格控件,该控件从桌面Windows Forms应用程序中的数据库加载数据。但是,我还需要一个带有组合框(包含一些项)的新本地列,单击该组合框会将信息保存到数据库的另一个表中。 enter image description here
这是我的代码

            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;

我尝试了组合框编辑,但是当我单击项目时,它们消失了,并且没有任何编辑,请有人帮我解决这个问题。

2 个答案:

答案 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事件处理程序中。