首先,我数据库有一张表
然后有一个枚举
数据库里的字段GroupTye存的数字都是枚举的索引,比如0对应的是MainComputationGroup
现在设计界面有2个下拉框,一个为cboGroupCode,一个是cboGroupType
我想解决的是:
下拉cboGroupCode下拉框的时候,选中一个值,接着联动第二个下拉框cboGroupType,要在cboGroupType中显示出枚举的值,然后读取的值是枚举的索引,也就是比如我选中一个Code的值是1,cboGroupType显示的值是MainComputationGroup,然后我取到存进数据库的值是0
注:因为框架的原因,不能使用数据库语句查询,也就是用不了类似 select GroupType from..where GroupCode=‘’的语句进行查询,目前我把GroupCode的值都绑定到cboGroupCode控件了
是Web应用程序还是WinForm应用程序啊,
你这是想更新指定GroupCode的GroupType吧?
对,两个值都是要存进数据库的
@LanJerry: 这个不需要联动吧,第二个下拉框是固定的选项,直接存储就行了呢。
@幻天芒: 不是这样的,是下拉框一个Code,另一个下拉框就自动赋值Code对应的Type
@LanJerry:$('第二个select').val('选择的value'):
没看太明白什么问题
用枚举项tostring()可以得到名子
通过attribute 选项description还能得到你写在枚举里的说明性的描述
可以得到名字,但是存进数据库的是要存它的索引。。
在第一个下拉框Change事件中进行处理呀,判断第二个值是什么,选中这一项就行了么.在事件中想干嘛都行呀
cboGroupType.DataSource = this.computationGroupEntityBindingSource; cboGroupType.ValueMember = "GroupType"; cboGroupType.SelectedIndex = cboGroupCode.SelectedIndex; string value = cboGroupType.Value.ToString(); if (value == "0") { value = "MainComputationGroup"; } if (value == "1") { value = "AssistComputationGroup"; } if (value == "2") { value = "OrderComputationGroup"; } foreach (var v in typeof(ComputationGroupTypeEnum).GetFields()) { if (v.FieldType.IsEnum == true) { if (v.Name == value) { cboGroupType.DataSource = null; this.cboGroupType.Clear(); this.cboGroupType.Items.Add(v.GetValue(v), v.Name); } } }