如何从数据网格中删除行? [英] How to remove row from datagrid?

查看:115
本文介绍了如何从数据网格中删除行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个从我希望能够随意删除行数据网格。以下是部分项目渲染我放在一起,以达到预期的效果,但必须有一个更好的方式来访问父数据网格的数据提供者。任何人有任何意见/建议吗?

 < XML版本=1.0编码=UTF-8&GT?;
< S:MXDataGridItemRenderer的xmlns:FX =htt​​p://ns.adobe.com/mxml/2009
XMLNS:S =库://ns.adobe.com/flex/spark
的xmlns:MX =库://ns.adobe.com/flex/mx
focusEnabled =真正的>
< FX:脚本>
<![CDATA [

公共职能deleteRow(事件:MouseEvent)方法:无效
{
VAR的数据网格:DataGrid中= event.target.parent.parent.parent; //必须有一个更好的方式来获取数据网格,然后攀上这样的实体链。
    dataGrid.dataProvider.removeItemAt(dataGrid.dataProvider.getItemIndex(数据));
}
]]≥
< / FX:脚本>
< S:按钮标签=删除点击=deleteRow(事件)/>
&所述; /秒:MXDataGridItemRenderer>
 

解决方案

您不...

 公共职能deleteRow(事件:的MouseEvent = NULL):无效{
    VAR delEvent:DynamicEvent =新DynamicEvent(deleteEvent,真正的);
    delEvent.dataToDelete =数据;
    则dispatchEvent(delEvent);
}
 

在类的危险品的危险品即可。

 < MX:DataGrid的ID =富的dataProvider ={someDP}/>
foo.addEventListener(deleteEvent,updateDP);
私有函数updateDP(事件:DynamicEvent):无效{
    foo.dataProvider.removeItem(event.dataToDelete);
}
 

I have a datagrid from which I'd like be able to remove rows at will. Below is the component item renderer I'm putting together in order to achieve desired result, but there has to be a better way to access the data provider of the "parent" data grid. Anyone have any ideas/suggestions?

<?xml version="1.0" encoding="utf-8"?>
<s:MXDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
xmlns:s="library://ns.adobe.com/flex/spark" 
xmlns:mx="library://ns.adobe.com/flex/mx" 
focusEnabled="true">
<fx:Script>
<![CDATA[

public function deleteRow(event:MouseEvent):void 
{
var dataGrid:DataGrid = event.target.parent.parent.parent; // There has to be a better way to get the data grid then climbing up the entity chain like this.
    dataGrid.dataProvider.removeItemAt(dataGrid.dataProvider.getItemIndex(data));
}
]]>
</fx:Script>
<s:Button label="Delete" click="deleteRow(event)"/>
</s:MXDataGridItemRenderer>

解决方案

You don't...

public function deleteRow( event : MouseEvent = null ) : void {
    var delEvent : DynamicEvent = new DynamicEvent( "deleteEvent", true );
    delEvent.dataToDelete = data;
    dispatchEvent( delEvent );
}

then in the class with your DG your DG.

<mx:DataGrid id="foo" dataProvider="{someDP}" />
foo.addEventListener( "deleteEvent", updateDP );
private function updateDP( event : DynamicEvent ) : void {
    foo.dataProvider.removeItem( event.dataToDelete );
}

这篇关于如何从数据网格中删除行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆