Как добавить строку сетки данных на событие нажатия клавиши? - PullRequest
0 голосов
/ 08 октября 2009

У меня есть таблица данных с одной строкой. Когда я нажимаю на первую строку, то есть на событие нажатия клавиши, я хочу добавить еще одну строку.

Раньше у меня была кнопка, при нажатии на которую я добавлял строку. Но теперь я хочу, чтобы строка добавлялась автоматически после щелчка по первой строке. Как это сделать?

Я добавил событие keydown в сетку данных, но оно выдало ошибку.

Может ли кто-нибудь мне помочь? Я дал свой код здесь. У меня есть текстовое поле и кнопка в компоненте задачи. Когда я щелкаю текстовое поле в компоненте задачи, я хочу вызвать функцию addTaskRow ..

 <mx:Script>
    <![CDATA[
        import mx.collections.ArrayCollection;
        import mx.rpc.events.ResultEvent;
        import mx.collections.XMLListCollection;


 [Bindable]

         private var initDG:ArrayCollection = new ArrayCollection([
            {Select:true},

        ]); 

        private function addTaskRow(event:MouseEvent):void
        {
            taskDataGrid.dataProvider.addItem(
                {

                }
            );
            taskDataGrid.height += 30; 

        }

    ]]>
</mx:Script> 

<mx:DataGrid id="taskDataGrid" dataProvider="{initDG}"  variableRowHeight="true" editable="true"  
  width="100%"  paddingBottom="1" paddingTop="1" height="47"> 

    <!--mx:DataGrid id="taskDataGrid"  dataProvider="{initDG}" rowCount="1" variableRowHeight="true" editable="true" width="100%"  keyDown="addTaskRow(event);"-->
            <mx:columns>
                <mx:DataGridColumn dataField="Select" 
                editable="true" 
                rendererIsEditor="true" 
                itemRenderer="mx.controls.CheckBox" 
                editorDataField="selected" />

                <mx:DataGridColumn dataField="TaskName"
                width="220"
                editable="true" 
                rendererIsEditor="true" 
                itemRenderer="components.taskComponent"/>

                <mx:DataGridColumn dataField="TaskId"
                itemRenderer="mx.controls.TextInput" />

                <mx:DataGridColumn dataField="TaskType"
                    itemRenderer="mx.controls.TextInput"/>

                 <mx:DataGridColumn dataField="ProjectWon"
                    itemRenderer="mx.controls.TextInput"/>

                <mx:DataGridColumn dataField="ItemCodeVersion"
                    itemRenderer="mx.controls.TextInput"/>



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

Ответы [ 2 ]

1 голос
/ 08 октября 2009

Вы хотите это нажатием клавиши или щелчком мыши? Измените keyDown на mouseDown.

но это выдало ошибку.

Какую ошибку он выбросил?

Если вы используете mouseDown для DataGrid, новая строка будет добавлена ​​при нажатии любой из строк, а не только первой строки.

0 голосов
/ 10 ноября 2009

http://www.switchonthecode.com/tutorials/adding-dynamic-rows-to-flex-datagrid предоставляет код для этого

...