当改变了公司后,部门那一列的选项也跟真改变。
这个 dataGridView 是绑定的 userBindingSource
公司这列的 DataGridViewComboBoxColumn 是绑定的 CoBindingSource
部门这列的 DataGridViewComboBoxColumn 绑定的是 deptBindingSource
上面这些都是用vs2005自动生成的代码做的。
然后给dataGridView 添加了个监听。当公司这列的某个单元格的值发生改变时触发一个事件。
事件代码如下:

Point a = dataGridView1 . CurrentCellAddress ; int values = ( int ) this . dataGridView1 . Rows [ a . X ] . Cells [ 1 ] . Value ; this . deptTableAdapter . FillBy ( this . dataSet . dept , values ) ; catch ( Exception ex ) MessageBox . Show ( ex . Message ) ;

给公司这一列的 ComboBox 添加事件

dataGridView . EditingControlShowing += new DataGridViewEditingControlShowingEventHandler ( dataGridView_EditingControlShowing ) ; private void dataGridView_EditingControlShowing ( object sender , DataGridViewEditingControlShowingEventArgs e ) if ( dataGridView . CurrentCell . OwningColumn . Name . Equals ( "公司" ) && e . Control is ComboBox ) ( e . Control as ComboBox ) . SelectedValueChanged -= new EventHandler ( ComboBox_SelectedValueChanged ) ; ( e . Control as ComboBox ) . SelectedValueChanged += new EventHandler ( ComboBox_SelectedValueChanged ) ; void ComboBox_SelectedValueChanged ( object sender , EventArgs e ) if ( ( sender as ComboBox ) . SelectedItem != null ) dataGridView . CurrentRow . Cells [ "部门" ] . Value = ( ( sender as ComboBox ) . SelectedItem as DataRowView ) [ "部门" ] ; DataTable dt = new DataTable ( ) ; dt . Columns . Add ( "c_ID" ) ; dt . Columns . Add ( "d_ID" ) ; for ( int i = 0 ; i < 10 ; i += 2 ) dt . Rows . Add ( new object [ ] { i , i % 4 } ) ; dataGridView1 . DataSource = dt ; //先构建第一个联动数据列 DataTable dt1 = new DataTable ( ) ; dt1 . Columns . Add ( "c_ID" ) ; dt1 . Columns . Add ( "c_name" ) ; for ( int i = 0 ; i < 10 ; i ++ ) dt1 . Rows . Add ( new object [ ] { i , "公司" + i . ToString ( ) } ) ; //建立下拉列 DataGridViewComboBoxColumn cc = new DataGridViewComboBoxColumn ( ) ; cc . DataSource = dt1 ; cc . HeaderText = "公司名称" ; cc . DisplayMember = "c_name" ; cc . ValueMember = "c_ID" ; cc . DataPropertyName = "c_ID" ; dataGridView1 . Columns . Add ( cc ) ; //构建第二个级联动数据列 DataTable dt2 = new DataTable ( ) ; dt2 . Columns . Add ( "d_ID" ) ; dt2 . Columns . Add ( "d_name" ) ; for ( int i = 0 ; i < 4 ; i ++ ) dt2 . Rows . Add ( new object [ ] { i , "部门" + i . ToString ( ) } ) ; //建立下拉列 DataGridViewComboBoxColumn c2 = new DataGridViewComboBoxColumn ( ) ; c2 . DataSource = dt2 ; c2 . HeaderText = "部门" ; c2 . DisplayMember = "d_name" ; c2 . ValueMember = "d_ID" ; c2 . DataPropertyName = "d_ID" ; dataGridView1 . Columns . Add ( c2 ) ; //最后隐藏ID列 dataGridView1 . Columns [ 0 ] . Visible = false ; dataGridView1 . Columns [ 1 ] . Visible = false ; 当改变了公司后,部门那一列的选项也跟真改变。这个 是绑定的公司这列的 是绑定的部门这列的 绑定的是上面这些都是用vs2005自动生成的代码做的。然后给dataGridView 添加了个监听。dataGridView_EditingControlShowing...
datagridview 中的 column combobox 时的数据 绑定 联动 ,就是同一行的后面的 combobox 根据前面的 combobox 变化而变化 下面是用dev的asp.net控件做的 combobox 3 级联 动的 一个 小demo: aspx文件: <%@PageLangu...
昨天和今天在做 c# datagridview DataGridView ComboBox Column ,为什么做了这么久,因为是总想使用datatable作为datasource进行 绑定 DataGridView ComboBox Column 上,但是实际上不能这样,而是datasource就是数据, DataGridView ComboBox Column 只是 datagridview 绑定 数据后,添加到其中,它 面的数据 设置 值,在datasource中获取,按照某种规则,放进去即可 public partial cla..
有时会遇到 datagridview 中两 均为下拉框,且包含 级联 关系,第二 单元格中的选项需根据第一 内容的选择而不同。之前看了多年前的论坛中(https://bbs.csdn.net/topics/280050019)写了如下的方法,我根据我的需求写了如下逻辑的代码。 此时,先要给 datagridview 绑定 editingcontrolingshowing 事件 。 private void d...
分享 一个 关于miniUI中选中datagrid中的某行数据,与右侧数据 联动 效果 : 需求,在查询的结果 表,选中任意一行数据,右侧会加载该条数据的明细数据。 (1)使用鼠标进行行选中,然后触发右侧datagrid的 联动 (2)当选中一条记录后,可以通过键盘的上下PgUp和PdDn来实现右侧数据的 联动 显示,基本 效果 图如下所示: 下面分别对上面的两种操作的前端实现都会做说明: 针对操作1: //获取...
右边的部分即为 一个 datagridview 表,表名为OrganNameChange(后续代码会用到); 表包含四 :“Organ Names” 为文本框,“Check”为勾选框,“Type”和“Rename”均为下拉框。 1.1 datagridview 的基本 设置 datagridview 的基本 设置 有: 表的前一 不显示( c# 默认显示):RowHeader... PostgreSQL 数据库时间加减,日期加减 INTERVAL 1 year 1 month 1 day 1 hour 1 min 1 sec weixin_51478028: 减一天不行 U盘启动盘,启动时报错Failed to load ldlinux.c32的解决办法 qq_45668562: 换其他的镜像或者其他的u盘试试 Python多张图片合并成一个PDF 冇241: 谢谢博主,这种脚本能快速解决问题,就不用下载有广告又臃肿的垃圾软件了 在 Nginx 下 Seahub 端启用 https Nginx 环境下部署 Seahub/SeafServer 帆布鞋12138: 跟官网你是一字不差啊 openresty、nginx 拦截非法请求, referer模块 ngx_http_referer_module programmer_ada: 哇, 你的文章质量真不错,值得学习!不过这么高质量的文章, 还值得进一步提升, 以下的改进点你可以参考下: (1)文章不宜太短;(2)增加内容的多样性(例如使用标准目录、标题、图片、链接、表格等元素);(3)增加除了各种控件外,文章正文的字数。