flex 中如下数组,怎么样根据name的值得到value?
privatevardataTypeList:ArrayCollection=newArrayCollection([{name:"",value:""},{name:"...
private var dataTypeList:ArrayCollection = new ArrayCollection(
[{name:"",value:""},
{name:"文本",value:"01"},
{name:"数字",value:"02"},
{name:"布尔",value:"03"},
{name:"日期",value:"04"}]
); 展开
[{name:"",value:""},
{name:"文本",value:"01"},
{name:"数字",value:"02"},
{name:"布尔",value:"03"},
{name:"日期",value:"04"}]
); 展开
展开全部
1.如果这个ArrayCollection 不是用于视图组建中你可以利用ArrayCollection 的筛选方法filterFunction:形如
private var dataTypeList:ArrayCollection = new ArrayCollection(
[{name:"",value:""},
{name:"文本",value:"01"},
{name:"数字",value:"02"},
{name:"布尔",value:"03"},
{name:"日期",value:"04"}]
);
dataTypeList.filterFunction=find;
private function find(item:Object):Boolean
{
trace(item.name)//你可以匹配你要查找的name,并得到value;
//这个方法一定要有返回值,因为它关系到视图的显示,本来它是用来刷新视图数据
}
2.如果ArrayCollection 绑定到了视图组建中,如List,dataGrid等数据显示组件上,一般是可以通过组建的selectedItem或getItem等属性取得一个Object,这个Object其实就是ArrayCollection 中{name:"文本",value:"01"},{name:"数字",value:"02"},{name:"布尔",value:"03"},,通过这个Object你可以取到你定义的的所有属性
ArrayCollection 一般都是用于直接绑定视图的,不会单独用来存储数据,根据你说的情况,我想应该是第二种情况,点到某个Object后,需要取得它的一些属性值
private var dataTypeList:ArrayCollection = new ArrayCollection(
[{name:"",value:""},
{name:"文本",value:"01"},
{name:"数字",value:"02"},
{name:"布尔",value:"03"},
{name:"日期",value:"04"}]
);
dataTypeList.filterFunction=find;
private function find(item:Object):Boolean
{
trace(item.name)//你可以匹配你要查找的name,并得到value;
//这个方法一定要有返回值,因为它关系到视图的显示,本来它是用来刷新视图数据
}
2.如果ArrayCollection 绑定到了视图组建中,如List,dataGrid等数据显示组件上,一般是可以通过组建的selectedItem或getItem等属性取得一个Object,这个Object其实就是ArrayCollection 中{name:"文本",value:"01"},{name:"数字",value:"02"},{name:"布尔",value:"03"},,通过这个Object你可以取到你定义的的所有属性
ArrayCollection 一般都是用于直接绑定视图的,不会单独用来存储数据,根据你说的情况,我想应该是第二种情况,点到某个Object后,需要取得它的一些属性值
追问
绑定下拉列表,传入的值为name,可是要用到的值却是value,所以想用name得到value,循环倒是可以解决,问题是代码量有点大,不够简洁
展开全部
最好写成xmllist
这样flex可以自动查找.
这样flex可以自动查找.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
[Bindable]public var cards:ArrayCollection = new ArrayCollection(
[ {label:"Visa", data:1},
{label:"MasterCard", data:2},
{label:"American Express", data:3} ]);
private function changeHandler(event:Event):void {
myLabel.text = "You selected: " + ComboBox(event.target).selectedItem.label;
myData.text = "Data: " + ComboBox(event.target).selectedItem.data;
} 自己好好看看把。
[ {label:"Visa", data:1},
{label:"MasterCard", data:2},
{label:"American Express", data:3} ]);
private function changeHandler(event:Event):void {
myLabel.text = "You selected: " + ComboBox(event.target).selectedItem.label;
myData.text = "Data: " + ComboBox(event.target).selectedItem.data;
} 自己好好看看把。
追问
这是获取选中的值,而不是根据label得到data
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-05-25
展开全部
只能循环每一个obj,判断name了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询