【问题标题】:Selecting a Checkbox and deleting a data grid row in Flex在 Flex 中选择复选框并删除数据网格行
【发布时间】:2010-11-08 00:07:51
【问题描述】:

我正在尝试实现以下内容:

  1. datagrid 的第一列有一个复选框。
  2. 选中复选框,然后删除数据网格列。
  3. 动态添加行时添加复选框。
  4. 如果当前数据在行中,则不显示复选框。

有人可以提供一些指导吗?

【问题讨论】:

  • "2> 选中复选框,然后删除 datagrid 列" 你的意思是“删除 datagrid 行”吗?
  • Ya..delete 行,而不是列。对不起。
  • 奇怪。这个对我有用。有时,在单击数据网格的另一行之前,不会处理复选框的更改事件

标签: apache-flex checkbox datagrid row


【解决方案1】:

我假设您要删除一行而不是一列。以下作品

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
                layout="vertical">
    <mx:Script>
        <![CDATA[
            import mx.events.IndexChangedEvent;
            import mx.collections.ArrayCollection;
            import mx.controls.Alert;

            [Bindable]
            private var ac:ArrayCollection=new ArrayCollection([{name: "John", shouldDelete: true}, {name: "Joe", shouldDelete: false}, {name: "Jill", shouldDelete: false}])


            private function deleteRows()
            {
                for each (var row:Object in ac)
                {
                    if (row.shouldDelete == true)
                    {
                        var i:int=ac.getItemIndex(row);
                        ac.removeItemAt(i);
                    }
                }
            }
        ]]>
    </mx:Script>

    <mx:VBox>
        <mx:DataGrid id="dg"
                     dataProvider="{ac}">
            <mx:columns>
                <mx:DataGridColumn dataField="name">

                </mx:DataGridColumn>
                <mx:DataGridColumn id="col2"
                                   editorDataField="selected"
                                   rendererIsEditor="true"
                                   dataField="data.shouldDelete">
                    <mx:itemRenderer>
                        <mx:Component>
                            <mx:CheckBox label="Test"
                                         selected="{data.shouldDelete}"
                                         change="data.shouldDelete=selected"/>
                        </mx:Component>
                    </mx:itemRenderer>
                </mx:DataGridColumn>

            </mx:columns>

        </mx:DataGrid>
        <mx:Button label="delete"
                   id="deleteBtn"
                   click="deleteRows()"/>

    </mx:VBox>
</mx:Application>

【讨论】:

  • 删除不是删除行。除了选中复选框之外,什么都没有发生。有什么想法吗?
【解决方案2】:

在 itemdatabound 中,你应该在特定单元格中将 enabled 设置为 false....

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 2011-03-10
    • 2012-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-31
    相关资源
    最近更新 更多