Hi,
I have added two combo box column in grid view using code. Now I want to add change value of second combo box on selected index change event of first combo box.
Following is the code :
private void dgv_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (e.Control is ComboBox)
{
((ComboBox)e.Control).SelectedIndexChanged += new EventHandler(UC_SelectedIndexChanged);
}
}
void UC_SelectedIndexChanged(object sender, EventArgs e)
{
// Here I get value of first Combo Box. I want to change values of second combo box // according to the value of first combo box.
}
Please tell me how to get DataRow and Second Combo box control in above event.
Any help appreciated.
Regards,
Vikram
Loading
VikramPosted Jul 17, 2012, 5:04 AM
Given code is working for asp.NET. I am working on Windows Form application. I got some solution as following :
void UC_SelectedIndexChanged(object sender, EventArgs e)
{
var currentcell = dgvTimeSheet.CurrentCellAddress;
var sendingCB = sender as DataGridViewComboBoxEditingControl;
DataTable dt = (new ASql()).RetriveByValue(Convert.ToInt32(sendingCB.SelectedValue.ToString()));
DataGridViewComboBoxCell cel = (DataGridViewComboBoxCell)dgv.Rows[currentcell.Y].Cells[2];
cel.DataSource = dt;
}
This code working fine for first time when I change first Combo. When i try to change it again it giving error Object reference not found.
Santhosh Kumar JayaramanPosted Jul 17, 2012, 3:30 AM
protected void Select_Spin1_IndexChanged(obje ct sender, EventArgs e)
{
//to get the current dropdown
DropDownList ddlSpin1 = (DropDownList)sender;
//to get the current grid row
GridViewRow gridrow = (GridViewRow)ddlSpin1. NamingContainer;
//to get the current index
int rowIndex = gridrow.RowIndex;
foreach (GridViewRow gridViewRow in GridView_Courses.Rows){
DropDownList ddlSpin2 = gridViewRow.FindControl(" Select_Spin2") as DropDownList;
ddlSpin2.DataSource=something;
ddlspin2.DataBind();
ddlSpin2.SelectedValue=something;
}