Установка флажка и удаление строки сетки данных в Flex

Я пытаюсь реализовать следующее:

  1. Первый столбец таблицы данных имеет флажок.
  2. Установите флажки, а затем удалите столбец сетки данных.
  3. Динамически, добавляйте флажок, когда строка добавляется динамически.
  4. Не показывать флажок, если теперь данные в строке.

Может ли кто-нибудь дать некоторые рекомендации?


person user120118    schedule 03.07.2009    source источник
comment
2> Установите флажки, а затем удалите столбец сетки данных. Вы имеете в виду «Удалить строку сетки данных»?   -  person tefozi    schedule 04.07.2009
comment
Ya..удалить строку, а не столбец. Прости.   -  person user120118    schedule 07.07.2009
comment
Странный. Меня устраивает. Иногда событие изменения для флажка не обрабатывается, пока вы не щелкнете другую строку сетки данных.   -  person Phil C    schedule 07.07.2009


Ответы (2)


Я предполагаю, что вы хотите удалить строку, а не столбец. Следующие работы

<?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>
person Phil C    schedule 06.07.2009
comment
Удаление не удаляет строку. Ничего не происходит, кроме выбора флажка. Любая идея ? - person user120118; 07.07.2009

В itemdatabound вы должны включить значение false в конкретной ячейке....

person Domnic    schedule 04.09.2009