Fle*_*460 3 apache-flex air actionscript-3 flex4
我将使用我的数据库字段值来选择我的值 <s:DropDownList
我试着去做
<s:DropDownList dataProvider="{DP_PAT_CIVIL}" selectedItem="@{objectUser.usrQualParent}"/>
Run Code Online (Sandbox Code Playgroud)
但是没有选择出现,提示中没有任何内容.
objectUser.usrQualParent表示数据提供者中存在的值DP_PAT_CIVIL.
例如,dataprovider是:
[Bindable]
private var DP_PAT_CIVIL:ArrayCollection = new ArrayCollection (
[{label:"Monsieur" , data:"0"},
{label:"Madame", data:"1"},
{label:"Mademoiselle", data:"2"},
{label:"Le Jeune", data:"3"}]
);
Run Code Online (Sandbox Code Playgroud)
和objectUser.usrQualParent值"Monsieur".
谢谢你的帮助
所选项目应指向数据提供者的确切项目.对于数据提供者可以包含的简单类型(例如String,Boolean或int),它可以等于该值.对于复杂对象,它应该是完全相同的值(指向同一内存单元的指针).
因此,在您的情况下,"Monsieur"不是由Objects而不是Strings 组成的数据提供者项.但以下情况也不是这样的:
<s:DropDownList dataProvider="{DP_PAT_CIVIL}" selectedItem="{{label:"Monsieur" , data:"0"}}"/>
Run Code Online (Sandbox Code Playgroud)
因为它是新创建的但不是同一个对象.
我建议您使用字符串作为键创建一些函数,以便从现有数据提供程序中搜索完全相同的值:
private function getSelectedItem(dp:ArrayCollection, key:String):Object
{
if (dp && dp.length > 0)
{
for each (var item:Object in dp)
{
if (item.label == key)
return item;
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
现在你的清单:
<s:DropDownList dataProvider="{DP_PAT_CIVIL}"
selectedItem="{getSelectedItem(DP_PAT_CIVIL, objectUser.usrQualParent)}"
change="objectUser.usrQualParent = event.currentTarget.selectedItem.label"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6312 次 |
| 最近记录: |