【问题标题】:How to remove row from datagrid?如何从数据网格中删除行?
【发布时间】:2010-09-28 16:13:34
【问题描述】:

我有一个数据网格,我希望能够从中随意删除行。下面是我为达到预期结果而组装的组件项渲染器,但必须有更好的方法来访问“父”数据网格的数据提供者。有人有什么想法/建议吗?

<?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>

【问题讨论】:

    标签: apache-flex actionscript-3


    【解决方案1】:

    你没有……

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

    然后在课堂上与你的 DG 你的 DG。

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

    【讨论】:

    • 使用事件是一种更简洁的方法;谢谢你的节目和讲述。
    猜你喜欢
    • 1970-01-01
    • 2012-06-06
    • 2015-10-30
    • 1970-01-01
    • 2012-12-11
    • 1970-01-01
    • 1970-01-01
    • 2017-02-07
    • 2020-07-01
    相关资源
    最近更新 更多