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 № 1Um 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;
}
}