/ / premendo un tasto su un AdvancedDataGrid seleziona la riga: come disabilitare? - flex, actionscript-3

premendo un tasto su AdvancedDataGrid si seleziona la riga: come disabilitare? - flex, actionscript-3

Se si preme un tasto della tastiera su un ADG illa riga selezionata si sposta sulla prima riga che trova il cui testo della prima cella della colonna inizia con il carattere appena premuto. Qualcuno sa se esiste una proprietà per disattivare tale comportamento?

Ecco un semplice frammento di codice che mostra questo, nel caso in cui ti piacerebbe giocare con un po 'di codice ...

grazie

f


<?xml version="1.0"?>
<!-- dpcontrols/adg/SimpleADG.mxml -->
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:s="library://ns.adobe.com/flex/spark">

<fx:Declarations>
<s:ArrayCollection id="myCbDb"/>
</fx:Declarations>

<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.events.AdvancedDataGridEvent;
import mx.events.FlexEvent;
import mx.events.ListEvent;


[Bindable]
private var dpADG:ArrayCollection = new ArrayCollection([
{Row:1, Name:"Pavement", cost:10, length:0.1},
{Row:2, Name:"Pavement", cost:20, length:.2},
{Row:3, Name:"Saner", cost:30, length:.30},
{Row:4, Name:"Saner", cost:10, length:.40},
{Row:5, Name:"The Doors", cost:5, length:.50},
{Row:6, Name:"The Doors", cost:0, length:.60},
{Row:7, Name:"Grateful Dead", cost:20, length:.70},
{Row:8, Name:"Grateful Dead", cost:10, length:.80},
{Row:9, Name:"Grateful Dead", cost:10, length:.90},
{Row:10, Name:"The Doors", cost:5, length:1},
{Row:11, Name:"The Doors", cost:10, length:0},
{Row:12, Name:"The Doors", cost:10, length:0},
{Row:13, Name:"The Doors", cost:10, length:0},
{Row:14, Name:"The Doors", cost:10, length:0},
{Row:15, Name:"The Doors", cost:10, length:0},
{Row:16, Name:"The Doors", cost:10, length:0},
{Row:17, Name:"The Doors", cost:10, length:0},
{Row:18, Name:"The Doors", cost:10, length:0},
{Row:19, Name:"The Doors", cost:10, length:0},
{Row:20, Name:"The Doors", cost:10, length:0},
{Row:21, Name:"The Doors", cost:10, length:0},
]);


]]>
</fx:Script>

<mx:AdvancedDataGrid
id="adg"
width="100%" height="100%"
selectionMode="multipleRows"
dataProvider="{dpADG}">
<mx:columns>
<mx:AdvancedDataGridColumn dataField="Name" />
<mx:AdvancedDataGridColumn dataField="cost" editorDataField="value"/>
<mx:AdvancedDataGridColumn dataField="length" editorDataField="value"/>
</mx:columns>
</mx:AdvancedDataGrid>
</s:Application>

risposte:

2 per risposta № 1

Per disabilitare questo comportamento devi usare un componente personalizzato che si estende AdvancedDataGrid. All'interno di questo componente puoi sovrascrivere il metodo findKey() che è responsabile della selezione della prima riga che inizia con il tasto premuto.

public class CustomAdvancedDataGrid extends AdvancedDataGrid
{
public function CustomAdvancedDataGrid()
{
super();
}

protected override function findKey(eventCode:int):Boolean
{
return false;
}
}