您的位置:程序门 -> .net技术 -> c#



datagridview问题 急,在线等


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


datagridview问题 急,在线等[已结贴,结贴人:lzt7]
发表于:2007-03-09 15:54:35 楼主
截图如下:
http://www.globalmarket.com/gb/ls/combo.jpg
datagridview可以直接添加数据更新.
前5列是来自gx表的,最后一列是来自bm表的,我只想更新前5列(就是表gx).但第五列不能乱填,所填的资料必须最后一列combobox中存在的
现在不知道该如何控制第5列的资料

两个表
工序表gx
id   name     bm(所属部门)   ...
1     裁剪       设计部             ...
2     制革       技术部             ...
.....

部门表bm

id   name
1     设计部
2     技术部
3     商展部
.....


我把工序表做成datatable绑定

到datagridview中  

显示结果是直接读取所有字段,

但我想所属部门字段是

combobox下拉,并且下拉选项是

bm表的选项

该如何做?

我就是搞不懂那个读取另外一

个数据表的combobox列如何存

到工序表中  
发表于:2007-03-09 15:57:221楼 得分:20
刚刚解决的一个一样的问题:
//combobox数据源。。。
  datatable   dt   =   new   datatable();
                                dt.columns.add(new   datacolumn( "sex ",   typeof(string)));

                                datarow   row   =   dt.newrow();
                                row[0]   =   "man ";
                                dt.rows.add(row);

                                datarow   row2   =   dt.newrow();
                                row2[0]   =   "woman ";
                                dt.rows.add(row2);

                                dt.acceptchanges();

//datagridview列
                                datagridviewcomboboxcolumn   cbc   =   new   datagridviewcomboboxcolumn();
                                cbc.datasource   =   dt;
                                cbc.displaymember   =   "sex ";
                                cbc.valuemember   =   "sex ";
                                cbc.datapropertyname   =   "sex ";
                                cbc.headertext   =   "sex ";

                                datagridviewtextboxcolumn   cid   =   new   datagridviewtextboxcolumn();
                                cid.headertext   =   "id ";
                                cid.datapropertyname=   "id ";

                                datagridviewtextboxcolumn   cname   =   new   datagridviewtextboxcolumn();
                                cname.headertext   =   "name ";
                                cname.datapropertyname   =   "name ";
                                datagridview1.columns.addrange(new   system.windows.forms.datagridviewcolumn[]   {cid,   cname,   cbc});

//datagridview数据源
                                datatable   dtsource   =   new   datatable();
                                dtsource.columns.add( "id ",   typeof(int32));
                                dtsource.columns.add( "name ",   typeof(string));
                                dtsource.columns.add( "sex ",   typeof(string));

                                datarow   r1   =   dtsource.newrow();
                                r1[0]   =   1;
                                r1[1]   =   "test ";
                                dtsource.rows.add(r1);
                                dtsource.acceptchanges();

                                datagridview1.datasource   =   dtsource;
发表于:2007-03-09 15:57:582楼 得分:0
现在问题是,所属部门那列(最后一列)的数据是在部门表中的数据,而非在工序表中的数据,只是想把此列选定值保存到工序表中去,该如何做啊?救急啊~~~~~~~~~~~~~~~~``
发表于:2007-03-09 15:58:053楼 得分:0
第3列性别,自己选
试试看
发表于:2007-03-09 16:04:314楼 得分:0
在群里问了老大
http://www.globalmarket.com/gb/ls/combo1.jpg
部门代号是通过部门下拉后自动带出的  

下面就是代码

datacolumn   dtcolumn;
                        //部门表
                        dtorg.clear();
                        dtcolumn   =   new   datacolumn( "orgno ",   typeof(string));
                        dtorg.columns.add(dtcolumn);
                        dtcolumn   =   new   datacolumn( "orgname ",   typeof(string));
                        dtorg.columns.add(dtcolumn);
                        grdorg.datasource   =   dtorg;

                        //工序表                      
                        dt.clear();
                        dtcolumn   =   new   datacolumn( "poname ",typeof(string));
                        dt.columns.add(dtcolumn);
                        dtcolumn   =   new   datacolumn( "orgno ",   typeof(string));
                        dt.columns.add(dtcolumn);
                        grdtest.autogeneratecolumns   =   false;
                        grdtest.datasource   =   dt;

                        datagridviewtextboxcolumn   pocolumn   =   new   datagridviewtextboxcolumn();
                        pocolumn.name   =   "工序名称 ";
                        pocolumn.datapropertyname   =   "poname ";
                        grdtest.columns.add(pocolumn);

                        datagridviewtextboxcolumn   orgcolumn   =   new   datagridviewtextboxcolumn();
                        orgcolumn.name   =   "部门代号 ";
                        orgcolumn.datapropertyname   =   "orgno ";
                        grdtest.columns.add(orgcolumn);

                        datagridviewcomboboxcolumn   orgnocolumn   =   new   datagridviewcomboboxcolumn();
                        orgnocolumn.name   =   "部门 ";
                        orgnocolumn.valuemember   =   "orgno ";
                        orgnocolumn.displaymember   =   "orgname ";
                        orgnocolumn.datasource   =   dtorg;
                        orgnocolumn.datapropertyname   =   "orgno ";
                        grdtest.columns.add(orgnocolumn);
发表于:2007-03-09 16:38:175楼 得分:0
orgnocolumn.name   =   "部门 ";               //列头显示字符
                        orgnocolumn.valuemember   =   "orgno ";   //外表值字段
                        orgnocolumn.displaymember   =   "orgname ";   //外表显示字段
                        orgnocolumn.datasource   =   dtorg;   //外表数据源.   本表的数据源在grid的datasource中设置了
                        orgnocolumn.datapropertyname   =   "orgno ";   //本表与外表关联的字段


快速检索

最新资讯
热门点击