нажатие клавиши на AdvancedDataGrid выбирает строку: как отключить? - PullRequest
2 голосов
/ 02 ноября 2010

Если вы нажмете клавишу клавиатуры на ADG, выбранная строка переместится на первую строку, в которой будет найден текст ячейки первого столбца, который начинается с только что нажатого символа. Кто-нибудь знает, есть ли свойство, чтобы отключить это поведение?

Вот простой фрагмент кода, который показывает это на тот случай, если вы захотите поиграть с каким-нибудь кодом ...

ТНХ

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>

1 Ответ

2 голосов
/ 03 ноября 2010

Чтобы отключить это поведение, вы должны использовать пользовательский компонент, который расширяет AdvancedDataGrid.В этом компоненте вы можете переопределить метод findKey(), который отвечает за выбор первой строки, которая начинается с нажатой клавиши.

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

    protected override function findKey(eventCode:int):Boolean
    {
        return false;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...