/ / Durch Drücken einer Taste in einem AdvancedDataGrid wird die Zeile ausgewählt: wie wird sie deaktiviert? - flex, ActionScript-3

Drücken einer Taste auf einem AdvancedDataGrid wählt Zeile: wie zu deaktivieren? - flex, actionscript-3

Wenn Sie eine Tastaturtaste an einem ADG drücken, wird dieDie ausgewählte Zeile wird in die erste Zeile verschoben, deren erste Spalte in der Zelle der Zelle mit dem gerade gedrückten Zeichen beginnt. Weiß jemand, ob es eine Eigenschaft gibt, die das Verhalten deaktiviert?

Hier ist ein einfaches Code-Snippet, das dies zeigt, falls Sie mit etwas Code spielen möchten ...

Danke

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>

Antworten:

2 für die Antwort № 1

Um dieses Verhalten zu deaktivieren, müssen Sie eine benutzerdefinierte Komponente verwenden, die erweitert wird AdvancedDataGrid. Innerhalb dieser Komponente können Sie die Methode überschreiben findKey() Diese ist für die Auswahl der ersten Zeile verantwortlich, die mit der gedrückten Taste beginnt.

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

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