dataGridView单元格下拉框实现联动
来源:互联网 发布:人工智能哪个大学好 编辑:程序博客网 时间:2024/06/17 16:38
第1步:先将第一个下拉框在Load里面填充上数据
dgvCmbObligorType.DataSource = dtPayer; dgvCmbObligorType.DisplayMember = "name"; dgvCmbObligorType.ValueMember = "id";
第2步:使用dataGridView1_CellValueChanged事件完成联动
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e){ if (e.RowIndex >= 0) { if (e.ColumnIndex == 0) { if (dataGridView1.Rows[e.RowIndex].Cells[0].Value != null) { string id = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString(); dataGridView1.Rows[e.RowIndex].Cells[0].Tag = id; //根据类型取责任人 if (id == "2")//快递员 { string sql = "exec srmaster..usp_getPoster "; DataTable dt = SRWebClient.webClient.Handler.dataClient.getDataTable(sql); DataGridViewComboBoxCell cell = dataGridView1.Rows[e.RowIndex].Cells[1] as DataGridViewComboBoxCell; cell.DataSource = dt; cell.DisplayMember = "name"; cell.ValueMember = "id"; dataGridView1.Rows[e.RowIndex].Cells[2].Value = "0"; } else if (id == "3")//站点 { string sql = "select * from srmaster..department where depcid in(800,801,802) order by name"; DataTable dt = SRWebClient.webClient.Handler.dataClient.getDataTable(sql); DataGridViewComboBoxCell cell = dataGridView1.Rows[e.RowIndex].Cells[1] as DataGridViewComboBoxCell; cell.DataSource = dt; cell.DisplayMember = "name"; cell.ValueMember = "id"; dataGridView1.Rows[e.RowIndex].Cells[2].Value = "0"; } } } else if (e.ColumnIndex == 1) { if (dataGridView1.Rows[e.RowIndex].Cells[1].Value != null) { string id = dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString(); dataGridView1.Rows[e.RowIndex].Cells[1].Tag = id; } } } }