两个combobox,选择第一个后,第二个联动加载数据源,这里已经实现了
问题也随之而来,选择了第一行数据后,再去点击选择第二行数据则报错
报错信息:无法将类型为“System.Data.DataRowView”的对象强制转换为类型“System.IConvertible”。代码:private static readonly WareHouse.BLL.T_IventoryCheck bll = new BLL.T_IventoryCheck(); public frmIventoryCheck()
{
InitializeComponent();
proclass.DataSource = bll.GetProclass().Tables[0].DefaultView;
proclass.DisplayMember = "ClassCode";
proclass.ValueMember = "ClassID";
} private void dgv_ADDCheckDetail_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
DataGridView dgv = (DataGridView)sender;
if (dgv.CurrentCell.GetType().Name == "DataGridViewComboBoxCell")
{
if (dgv.CurrentCell.ColumnIndex == 0)
{
ComboBox cmb1 = (ComboBox)e.Control;
cmb1.SelectedIndexChanged += new EventHandler(comboBox_SelectedIndexChanged);
}
else
{
ComboBox cmb2 = (ComboBox)e.Control;
cmb2.SelectedIndexChanged += new EventHandler(comboBox_SelectedIndexChanged2);
}
}
} public void comboBox_SelectedIndexChanged(object sender, EventArgs e)
{
ComboBox combox = (ComboBox)sender;
int classID = Convert.ToInt32(combox.SelectedValue);
productcode.DataSource = bll.GetProCode(classID).Tables[0].DefaultView;
productcode.DisplayMember = "ProductCode";
productcode.ValueMember = "ProductID";
}
问题也随之而来,选择了第一行数据后,再去点击选择第二行数据则报错
报错信息:无法将类型为“System.Data.DataRowView”的对象强制转换为类型“System.IConvertible”。代码:private static readonly WareHouse.BLL.T_IventoryCheck bll = new BLL.T_IventoryCheck(); public frmIventoryCheck()
{
InitializeComponent();
proclass.DataSource = bll.GetProclass().Tables[0].DefaultView;
proclass.DisplayMember = "ClassCode";
proclass.ValueMember = "ClassID";
} private void dgv_ADDCheckDetail_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
DataGridView dgv = (DataGridView)sender;
if (dgv.CurrentCell.GetType().Name == "DataGridViewComboBoxCell")
{
if (dgv.CurrentCell.ColumnIndex == 0)
{
ComboBox cmb1 = (ComboBox)e.Control;
cmb1.SelectedIndexChanged += new EventHandler(comboBox_SelectedIndexChanged);
}
else
{
ComboBox cmb2 = (ComboBox)e.Control;
cmb2.SelectedIndexChanged += new EventHandler(comboBox_SelectedIndexChanged2);
}
}
} public void comboBox_SelectedIndexChanged(object sender, EventArgs e)
{
ComboBox combox = (ComboBox)sender;
int classID = Convert.ToInt32(combox.SelectedValue);
productcode.DataSource = bll.GetProCode(classID).Tables[0].DefaultView;
productcode.DisplayMember = "ProductCode";
productcode.ValueMember = "ProductID";
}
第二次点就没有selectedvalue属性了,变成了System.Data.DataRowView