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,你可以参考一下:
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;}}