2011-09-12 73 views
0

主題說明了一切。我的簡化代碼如下:Flex:解析錯誤:'<s:Button>'不允許關注'</s:Button>'

<mx:DataGrid id="gridFields" width="100%"> 
    <mx:columns> 
    <mx:DataGridColumn dataField="name" 
         headerText="Name" /> 

    <mx:DataGridColumn dataField="description" 
         headerText="Description"/> 

    <mx:DataGridColumn> 
     <mx:itemRenderer> 
     <fx:Component> 
      <!--these two buttons are the problem--> 
      <s:Button id="btnDeleteField" 
          label="Delete" 
          click="outerDocument.deleteField(event)" /> 
      <s:Button id="btnEditField" 
         label="Edit" 
         click="outerDocument.editField(event)" /> 
     </fx:Component> 
     </mx:itemRenderer> 
    </mx:DataGridColumn> 
    </mx:columns> 
</mx:DataGrid> 

回答

1

通過執行以下操作

<mx:DataGridColumn> 
    <mx:itemRenderer> 
    <fx:Component> 
     <s:MXDataGridItemRenderer> 
     <s:HGroup> 
      <mx:Button label="Aaa"/> 
      <mx:Button label="Bbb" /> 
     </s:HGroup> 
     </s:MXDataGridItemRenderer> 
    </fx:Component> 
    </mx:itemRenderer> 
</mx:DataGridColumn> 
+0

非常感謝您發佈此信息!我在重繪時遇到了一個奇怪的錯誤2025,它涉及一個'VBox'作爲Component中的頂層組件,並奇蹟般地將它包裝在一個固定它的MXDataGridItemRenderer中。 – Maltiriel

1

只能將一個<fx:Component> ... </fx:Component>塊內的一個主要組成部分,因爲你是在技術上延長(在OOP意義上的)無論您使用的類。你所做的是鬆散相當於在ActionScript中編寫MyComponent extends Button extends Button

相反,嘗試將兩個按鈕放在一個容器內,例如。一個GroupBorderContainer

+0

我試圖與周圍的HGroup兩個按鈕解決我的問題。它現在編譯並運行,但在嘗試呈現時拋出此錯誤 TypeError:錯誤#1034:類型強制失敗:無法將元數據:: MetadataTypesDialog2InnerClass0 @ 16b96c29轉換爲mx.controls.listClasses.IListItemRenderer。 – PBG

相關問題