我有一個列表對象,並通過dataProvider通過addItem向它添加項目。使用indexOf訪問數據提供程序
在將項目添加到列表之前,我想確保它不是重複的。我試過在dataProvider上使用indexOf,它返回null。我已經嘗試將它轉換爲數組並且它可以工作,但即使dataProvider中存在該元素,也總是返回-1。
我已經能夠使用的唯一方法似乎有點hacky,我想知道是否有更好的方法來找到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>
謝謝。這工作完美!我在dataProvider上使用了contains方法,它只是我想要的方式。 – metric152 2009-06-16 19:42:07