Flex中的ComboBox的显示值随DataGrid行变化而变化的有关问题
Flex中的ComboBox的显示值随DataGrid行变化而变化的问题?
我在一个DataGrid上绑定了从数据库中取来的数据,其中有个字段为:xbm,其值只有1和2;其中1表示男,2表示女;然后我在DataGrid旁边放置了一个ComboBox,用来显示“男”和“女”。
现在的问题是如何让ComboBox随DataGrid中xbm的变化而显示相应的“男”和“女”。
说明:实际中有很多选项,我只是举个很简单的来求助解决问题。
谢谢大家!
------解决方案--------------------
当然会浩很多资源了,而且一般一个combobox也不大会放那么大的数据项。如果出现这样的情况还不如直接用DataGrid呢。
沿着你的思路的话,要让combobox中的显示随着DataGrid的变化而变化,你的需求种对于一个给定的datagrid字端的确定的直,combobox的值也是唯一的对不。
如果是这样的情况的化。你可以考虑一下“关联数组”的思维,也就是说,假设你需要关注的datagrid的字端是存在一个数组中的,这样一来每个具体的直都有一个下标与其对应,这样如果你combobox中需要显示的内容也是存在一个数组中的,并且可以用同一个下标来访问,这不就可以避免循环对比了吗?
你除了flex应该还熟悉另外一门语言的吧,比如java,它的HashMap就可以方便的解决上面的问题。我用actionscript2写过一个简单的Map,你可以参考一下:
我在一个DataGrid上绑定了从数据库中取来的数据,其中有个字段为:xbm,其值只有1和2;其中1表示男,2表示女;然后我在DataGrid旁边放置了一个ComboBox,用来显示“男”和“女”。
现在的问题是如何让ComboBox随DataGrid中xbm的变化而显示相应的“男”和“女”。
说明:实际中有很多选项,我只是举个很简单的来求助解决问题。
谢谢大家!
------解决方案--------------------
当然会浩很多资源了,而且一般一个combobox也不大会放那么大的数据项。如果出现这样的情况还不如直接用DataGrid呢。
沿着你的思路的话,要让combobox中的显示随着DataGrid的变化而变化,你的需求种对于一个给定的datagrid字端的确定的直,combobox的值也是唯一的对不。
如果是这样的情况的化。你可以考虑一下“关联数组”的思维,也就是说,假设你需要关注的datagrid的字端是存在一个数组中的,这样一来每个具体的直都有一个下标与其对应,这样如果你combobox中需要显示的内容也是存在一个数组中的,并且可以用同一个下标来访问,这不就可以避免循环对比了吗?
你除了flex应该还熟悉另外一门语言的吧,比如java,它的HashMap就可以方便的解决上面的问题。我用actionscript2写过一个简单的Map,你可以参考一下:
- Java code
class wargrey.util.Map { private var keys:Array; private var values:Array; public function Map(){ keys=new Array(); values=new Array(); } public function put(key:Object,value:Object):Void{ for (var i:Number=0;i<keys.length;i++){ if (keys[i]==key){ values[i]=value; return ; } } keys.push(key); values.push(value); return ; } public function get(key:Object):Object{ for (var i:Number=0;i<keys.length;i++) if (keys[i]==key)return values[i]; return null; } public function del(key:Object):Object{ var result:Object=null; for (var i:Number=0;i<length;i++){ if (keys[i]==key){ result=values[i]; keys[i]=keys[length-1]; values[i]=values[length-1]; keys.pop(); values.pop(); break; } } return result; } public function get length():Number{ return keys.length; } public function toString():String{ var s:String=""; for (var i:Number=0;i<length;i++) s=s+"\n"+keys[i]+"="+values[i]; return s; } }