Editar datagrid com double click

33 views
Skip to first unread message

Leonardo Oliveira

unread,
Oct 20, 2012, 7:52:53 AM10/20/12
to flexdev
Pessoal bom dia.
Gostaria de editar o campo do datagrid com dois cliques ao invés de
um. Alguma dica?
Obrigado.

Pablo Rafaelo Si

unread,
Oct 20, 2012, 10:21:34 AM10/20/12
to fle...@googlegroups.com
Bom dia Leonardo.

O que você quer fazer está explicado aqui:

Para mais referências consulte a documentação da adobe:
 
Basicamente funciona assim: Coloque a propriedade "doubleClickEnabled" como true (isso diz ao datagrid que você permite eventos de doubleclick). Então adicione os evento "itemClick" e "itemDoubleClick". ItemClick dispara um evento quando o item é clicado, doubleclick a mesma coisa. Acontece que você não quer permitir que seja editado com um click, certo? Então você usará o evento itemEditBegin para dizer que se for um clique unico, não deixa alterar.

Abaixo segue o código de exemplo, se não for isso que você quer, dá um toque ai. Abraços.

<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"                xmlns:s="library://ns.adobe.com/flex/spark"                xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">     <fx:Script>         <![CDATA[             import mx.events.DataGridEvent;             import mx.events.ListEvent;             private var dblClickEditMode:Boolean;                         [Bindable] private var dp:Array = [                 {Artist:"Pink Floyd", Price:"11.99", Album:"The Wall"},                 {Artist:"Pink Floyd", Price:"13.99", Album:"Animals"},                 {Artist:"Squeeze", Price:"12.99", Album:"Singles: 45's and Under"},                 {Artist:"Squeeze", Price:"10.99", Album:"Some Fantastic Place"},                 ]                         protected function dgGrid_itemClick(event:ListEvent):void {                 dblClickEditMode=false;             }             protected function dgGrid_itemDoubleClick(event:ListEvent):void {                 dblClickEditMode=true;             }                protected function dgGrid_itemEditBegin(event:DataGridEvent):void {                 if(!dblClickEditMode) event.preventDefault();             }                     ]]>     </fx:Script>         <mx:DataGrid id="dgGrid"                  editable="true"                  doubleClickEnabled="true"                  itemClick="dgGrid_itemClick(event)"                  itemDoubleClick="dgGrid_itemDoubleClick(event)"                  itemEditBegin="dgGrid_itemEditBegin(event)"                  dataProvider="{dp}">         <mx:columns>             <mx:DataGridColumn dataField="Album"/>             <mx:DataGridColumn dataField="Price"/>         </mx:columns>     </mx:DataGrid> </s:Application>

Pablo Rafaelo Si
E-mail / MSN: pablo....@gmail.com

Leonardo Oliveira

unread,
Oct 22, 2012, 5:59:01 AM10/22/12
to flexdev
Obrigado Pablo, era isso mesmo. Bom dia aí.

On Oct 20, 11:21 am, Pablo Rafaelo Si <pablo.rafa...@gmail.com> wrote:
> Bom dia Leonardo.
>
> O que você quer fazer está explicado aqui:http://www.actionscript.org/forums/showthread.php3?t=243969
>
> Para mais referências consulte a documentação da adobe:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/fl...http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/fl...http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/fl...http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/fl...
> E-mail / MSN: pablo.rafa...@gmail.com
>
> Em 20 de outubro de 2012 08:52, Leonardo Oliveira <
> leonardoc.olive...@gmail.com> escreveu:
Reply all
Reply to author
Forward
0 new messages