我的申请由DataGridviewComboBoxColumn
DataGridView
组成。 ComboBoxColumn
正从数据库表(键,值对)中填充。我正在尝试使用ComboBox
事件设置DefaultValuesNeeded
列的默认值,但它无效。
以下是示例代码:
e.Row.Cells["Job"] as DataGridViewComboBoxColumn).Value ="12"
但它显示12为值,而不是12,它假设显示12值的实际文本。
例如:
DataGridViewComboBoxColumn dgvCbJob = new DataGridViewComboBoxColumn();
{
dgvCbJob.HeaderText = "Job";
hadd.Clear();
hadd.Add("@Search", string.Empty);
ds = ObjDAL.GetDataSetForPrc("prc_GetJobList", hadd);
if (ds.Tables[0].Rows.Count > 0)
{
dgvCbJob.DataSource = ds.Tables[0];
dgvCbJob.DisplayMember = "JobName";
dgvCbJob.ValueMember = "JobMasterId";
}
dgvCbJob.DisplayIndex = 0;
dgvCbJob.Width = 100;
dgvCbJob.Name = "Job";
}
答案 0 :(得分:1)
要设置单元格的默认值,您可以使用以下任一选项:
DefaultValuesNeeded
网格事件并将值分配给e.Row.Cells["Job"].Value
DataTable
设置DefaultValue
作为'作业' DataColumn
到期望值在这两个选项中,您指定的值类型应与列的DataType
类型相同。
注意:您应该知道e.Row.Cells["Job"]
不是DataGridViewComboBoxColumn
。如果列是组合框,则单元格为DataGridViewComboBoxCell
。
答案 1 :(得分:0)
在许多情况下,这可以在设计模式下完成,右键单击 dgv,选择组合框列,默认单元格样式,数据“nullValue”
非常适合更简单的情况,例如用户的简单选择 A B C,默认为 A,如果您稍后将单元格的值与 A 或 B 或 C 进行比较,它将起作用。但是,如果您与所选索引进行比较,这将是一个问题,因为我相信它被视为集合中的一个值