两个下拉框的联动的逻辑问题,求大神解答
首先,我数据库有一张表
然后有一个枚举
数据库里的字段GroupTye存的数字都是枚举的索引,比如0对应的是MainComputationGroup
现在设计界面有2个下拉框,一个为cboGroupCode,一个是cboGroupType
我想解决的是:
下拉cboGroupCode下拉框的时候,选中一个值,接着联动第二个下拉框cboGroupType,要在cboGroupType中显示出枚举的值,然后读取的值是枚举的索引,也就是比如我选中一个Code的值是1,cboGroupType显示的值是MainComputationGroup,然后我取到存进数据库的值是0
注:因为框架的原因,不能使用数据库语句查询,也就是用不了类似 select GroupType from..where GroupCode=‘’的语句进行查询,目前我把GroupCode的值都绑定到cboGroupCode控件了
C#Winfrom combobox --------------------编程问答-------------------- 不能用数据库查询GroupCode所对应的GroupType的话
怎么去判断哪个GroupCode对应哪个GroupType --------------------编程问答-------------------- 你只能去后台通过SeleceChange()事件里用Switch判断,手动添加第二个下拉框的值 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 你使用linq查询 --------------------编程问答-------------------- 把关系早取出来,用的时候去获取不就行了?
定义一个对象,存到里边,然后便利啊 --------------------编程问答--------------------
根据cboGroupCode下拉框的索引对应cboGroupType的索引,能取出对应于枚举的索引,因为Code所对应的Type是存在同一条数据的 --------------------编程问答--------------------
具体操作,我也想过遍历,不知道怎么实现 --------------------编程问答--------------------
SelectChange里写什么事件? --------------------编程问答-------------------- 这个似乎不需要2个联动吧 --------------------编程问答--------------------
就两个下拉框的1个联动 --------------------编程问答-------------------- 利用combobox绑定实现。combobox控件初始化的时候,从数据库中读取groupCode 和 groupType两个字段,让
combobox的显示元素和值元素分别为groupCode和groupType,即:
DataTable table = new DataTable("GroupTable");
DataColumn column_name = new DataColumn("code");
DataColumn column_value = new DataColumn("type");
combobox.datasource=table;//combobox控件与table关联
combobox.DisplayMember = "code";
combobox.ValueMember = "type"
这样选取combobox中的某一个行的时候,显示的是code,可以取到该行对应的实际的type,再把该type赋值给另一个combobox。是否可行? --------------------编程问答-------------------- DataTable table = new DataTable("GroupTable");
DataColumn column_name = new DataColumn("code");
DataColumn column_value = new DataColumn("type");
table.Columns.Add(column_name);
table.Columns.Add(column_value);
combobox.datasource=table;//combobox控件与table关联
combobox.DisplayMember = "code";
combobox.ValueMember = "type" --------------------编程问答-------------------- 使用SeleceChange()事件 --------------------编程问答-------------------- 说错了,就一个。 --------------------编程问答--------------------
大神你这样只能存进type的值,但是code的值也是要存进去的。。 --------------------编程问答-------------------- 具体实现? --------------------编程问答--------------------
用Switch判断,手动添加第二个下拉框的值,比如第一个下拉框显示(text)为"广东",值(value)为0,那么在事件里判断
switch cbo
{
case 0:
cbo2.Add(new ListItem("广州", "0"));
cbo2.Add(new ListItem("深圳", "1"));
break;
case 1:
}
比较麻烦,仅供参考,可能有更简单的方法。 --------------------编程问答--------------------
利用combobox绑定实现。combobox控件初始化的时候,从数据库中读取groupCode 和 groupType两个字段,让
combobox的显示元素和值元素分别为groupCode和groupType,即:
DataTable table = new DataTable("GroupTable");
DataColumn column_name = new DataColumn("code");
DataColumn column_value = new DataColumn("type");
combobox.datasource=table;//combobox控件与table关联
combobox.DisplayMember = "code";
combobox.ValueMember = "type"
这样选取combobox中的某一个行的时候,显示的是code,可以取到该行对应的实际的type,再把该type赋值给另一个combobox。是否可行?
大神你这样只能存进type的值,但是code的值也是要存进去的。。
code的值就是显示出来的值啊。 --------------------编程问答--------------------
你只能去后台通过SeleceChange()事件里用Switch判断,手动添加第二个下拉框的值
SelectChange里写什么事件?
用Switch判断,手动添加第二个下拉框的值,比如第一个下拉框显示(text)为"广东",值(value)为0,那么在事件里判断
switch cbo
{
case 0:
cbo2.Add(new ListItem("广州", "0"));
cbo2.Add(new ListItem("深圳", "1"));
break;
case 1:
}
比较麻烦,仅供参考,可能有更简单的方法。
这样存的是枚举显示值,不是存枚举索引。。 --------------------编程问答--------------------
你只能去后台通过SeleceChange()事件里用Switch判断,手动添加第二个下拉框的值
SelectChange里写什么事件?
用Switch判断,手动添加第二个下拉框的值,比如第一个下拉框显示(text)为"广东",值(value)为0,那么在事件里判断
switch cbo
{
case 0:
cbo2.Add(new ListItem("广州", "0"));
cbo2.Add(new ListItem("深圳", "1"));
break;
case 1:
}
比较麻烦,仅供参考,可能有更简单的方法。
这样存的是枚举显示值,不是存枚举索引。。
0, 1 不是索引么?
补充:.NET技术 , C#