J'ai un objet liste et j'y ajoute des éléments avec addItem via le dataProvider.Accès à un fournisseur de données avec indexOf
Avant d'ajouter un article à la liste, je veux m'assurer qu'il ne s'agit pas d'un doublon. J'ai essayé d'utiliser indexOf sur le dataProvider et il renvoie null. J'ai essayé de le convertir en un tableau et cela fonctionne, mais retourne toujours -1 même si l'élément existe dans le fournisseur de données.
La seule méthode que je suis en mesure d'utiliser semble un peu hacky et je voudrais savoir s'il y a une meilleure façon de trouver un élément dans un dataProvider.
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" styleName="plain" applicationComplete="init()">
<mx:Script>
<![CDATA[
import mx.controls.List;
[Bindable]
public var testListArray:Array;
public function init():void
{
testList.dataProvider.addItem('test');
testList.dataProvider.addItem('banana');
//search for element in dataProvider
if(testList.dataProvider.toString().indexOf('banana') > -1)
{
trace('found');
}
//search for element in dataProvider
if(testList.dataProvider.toString().indexOf('goat') === -1)
{
trace('not found');
}
}
]]>
</mx:Script>
<mx:List dataProvider="{testListArray}" x="260" y="204" id="testList" borderStyle="solid" borderColor="#000000"></mx:List>
</mx:Application>
Merci. Cela a fonctionné parfait! J'ai utilisé la méthode contains sur le dataProvider et il agit exactement comme je le veux. – metric152
content je pourrais aider! –