2012-01-09 36 views
0

我有包含兩個按鈕的定義ItemRenderer火花數據網格。我希望允許用戶在瀏覽頁面中的控件時訪問這兩個按鈕,這有可能嗎?Flex的DataGrid的星火 - 標籤專注於定製GridItemRenderer

我已經放在一起說明了什麼我迄今所嘗試一個簡單的示例應用程序(只是嘗試通過按鍵tab鍵明白我的意思)。我必須使用GridItemEditor嗎?

在此先感謝

GAV株系

<?xml version="1.0" encoding="utf-8"?> 
<!-- dpcontrols\sparkdpcontrols\SparkDGStyledIR.mxml --> 
<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" 
       width="450" height="450"> 

    <fx:Script> 
     <![CDATA[ 
      import mx.collections.ArrayCollection; 
      import mx.controls.Alert; 

      // Data includes URL to album cover. 
      [Bindable] 
      private var initDG:ArrayCollection = new ArrayCollection([ 
       {Artist:'Pavement', Album:'Slanted and Enchanted', 
        Price:11.99, Cover:'../assets/slanted.jpg', tabIndex:2}, 
       {Artist:'Pavement', Album:'Slanted and Enchanted', 
        Price:11.99, Cover:'../assets/slanted.jpg', tabIndex:3}, 
       {Artist:'Pavement', Album:'Slanted and Enchanted', 
        Price:11.99, Cover:'../assets/slanted.jpg', tabIndex:4}, 
       {Artist:'Pavement', Album:'Brighten the Corners', 
        Price:11.99, Cover:'../assets/brighten.jpg', tabIndex:5} 
      ]); 
     ]]> 
    </fx:Script> 
    <s:layout> 
     <s:VerticalLayout /> 
    </s:layout> 

    <s:DataGrid id="myGrid" 
       hasFocusableChildren="true" tabEnabled="true" tabChildren="true" focusEnabled="true" tabFocusEnabled="true" 
       dataProvider="{initDG}" selectionMode="singleCell" tabIndex="1" 
       variableRowHeight="true"> 
     <s:columns> 
      <s:ArrayList> 
       <s:GridColumn dataField="Artist" rendererIsEditable="true"> 
        <s:itemRenderer> 
         <fx:Component> 
          <s:GridItemRenderer hasFocusableChildren="true" tabEnabled="true" tabChildren="true" focusEnabled="true" tabFocusEnabled="true" 
               selectAll="meBtn.setFocus()"> 
           <fx:Script> 
            <![CDATA[ 
             import mx.controls.Alert; 
            ]]> 
           </fx:Script> 
           <s:Button id="meBtn" label="{this.data.tabIndex} Click me" click="Alert.show('clicked','info')" tabIndex="{this.data.tabIndex}" 
              tabEnabled="true" tabChildren="true" focusEnabled="true" tabFocusEnabled="true"/> 
          </s:GridItemRenderer> 
         </fx:Component> 
        </s:itemRenderer>  
       </s:GridColumn> 
       <s:GridColumn dataField="Album"/> 
       <s:GridColumn dataField="Price"/> 
      </s:ArrayList> 
     </s:columns>  
    </s:DataGrid> 

    <s:Button label="Some other button" tabIndex="100" click="Alert.show('this button below the grid is tab enabled fine','note')" /> 
</s:Application> 

回答

1

數據網格

editable = true 

在你列的按鈕設置

rendererIsEditable="true" 

不可編輯的列

editable = false 

Tab鍵應與這些設置工作,當您使用自定義GridItemRender