AddItemAt()的arraycollection是不工作的flex



我试图在arraycollection中添加一个项目,该项目使用addItemAt()进行排序和过滤。但是addItemAt()并没有向指定的索引中添加条目。有谁知道解决上述问题的方法吗?

我正在尝试添加一个项目在数组集合这是排序和过滤后的

如果集合已排序,则在向其添加新项时将自动刷新过滤器。所以,你添加项目的索引可能不是项目最终的索引。这完全取决于排序算法。

您可以删除排序以将新项锁定在指定的索引上。在我的脑海里,这样做:

arrayCollection.sort = null;
arrayCollection.refresh();

我很确定同样的概念也适用于过滤。如果将筛选器应用于集合,则新项目需要匹配筛选条件,否则它将不会显示在集合中,直到删除筛选器。

我有一个类似的问题,只有在Flex 3和排序的ArrayCollection。如果您搜索,您会发现addItemAt不能与排序的ArrayCollection一起工作(并且绝对不能过滤?不知道)。项目将根据排序标准进行添加。

然而,我需要一个排序的ArrayCollection (alpha),顶部有一个"Select All"选项,所以我是这样做的:

数组可以很容易地排序(array.sort),所以我首先创建了一个array。然后循环ArrayCollection,并将希望排序的项添加到数组中。然后对新数组进行排序。

新排序的数组被循环,在这个循环中,ArrayCollection被再次循环。如果在排序项上找到匹配项,我将该对象添加到新的ArrayCollection中,但也为添加的对象创建了一个名为"sortOrder"的新属性,该属性设置为循环计数。

下一步,创建"全选"对象,并将其sortOrder设置为-1。

最后,在ArrayCollection的sortOrder字段上创建了数字排序,瞧,它成功了。

也许有人有一个更优雅的解决方案,但我很着急,它起作用了。

addItemAt() is adding item to the specified index.
例如

*:*

    <fx:Script>
    <![CDATA[
        import mx.collections.ArrayCollection;
        [Bindable]
        private var myArray:ArrayCollection= new ArrayCollection([
            {student:'one',subject:'2'},
            {student:'two',subject:'4'},
            {student:'three',subject:'5'},
            {student:'four',subject:'6'}
        ]);
        protected function addArrayCollectioninRuntime(event:MouseEvent):void
        {
            myArray.addItemAt({student:nameTxtinput.text,subject:subjectTxtinput.text},3);

        }
    ]]>
</fx:Script>
<s:layout>
    <s:VerticalLayout/>
</s:layout>
<s:Form>
    <s:FormItem label="Student Name :">
        <s:TextInput id="nameTxtinput"/>
    </s:FormItem>
    <s:FormItem label="Student Subject :">
        <s:TextInput id="subjectTxtinput" />
    </s:FormItem>
    <s:Button label="Submit" click="addArrayCollectioninRuntime(event)"/>
</s:Form>
<mx:DataGrid dataProvider="{myArray}" id="dGrid" >
    <mx:columns>
        <mx:DataGridColumn dataField="student" id="stud"/>
        <mx:DataGridColumn dataField="subject" id="sub"/>
    </mx:columns>
</mx:DataGrid>

相关内容

  • 没有找到相关文章

最新更新