通过单击“删除”列中该行的按钮部分来删除Datagrid的行?

时间:2010-11-23 17:27:43

标签: flex datagrid row itemrenderer

当有人点击位于“删除列”下方的该行的按钮部分时,我想删除一行数据网格。我试过很多不同的方式,其中一个是

<mx:DataGrid id="userGrid" dataProvider="{userGridData}" width="800" height="500" itemClick="userGrid_itemClickHandler(event)" creationComplete="userGrid_creationCompleteHandler(event)">
        <mx:columns>
            <mx:DataGridColumn headerText="ID" dataField="user_id" />

            <mx:DataGridColumn headerText="Email" dataField="user_email"/>

            <mx:DataGridColumn headerText="Delete" itemRenderer="ev.renderers.UserGridDelete" id="deleteCol"/>
            <mx:DataGridColumn headerText="Edit" itemRenderer="ev.renderers.UserGridEditRender"/>

        </mx:columns>
    </mx:DataGrid>

项目渲染ev.renderers.UserGridEditRender有一个删除按钮列表,点击事件它基本上userGridData.removeItemAt(userGrid.selectedIndex); (UserGridData =网格的数据提供者,ID为“userGrid”) 但每当我点击按钮时抛出异常

RangeError: Index '-1' specified is out of bounds.

1 个答案:

答案 0 :(得分:1)

如何让您的项目渲染器按钮调度包含所选“数据”的事件。

dispatchEvent( new DataMonkeyEvent(DataMonkeyEvent.DELETE_ROW, this.data) );  //where "this" is the button and the event should bubble.

在外部文档中侦听该事件,并相应地编辑你的userGridData ...如果你没有使用内部扩展数据提供者来监听孩子们改变了jive,那么invalidateList()。

希望有所帮助。 --jeremy