2014-01-08 69 views
0

我有一個datagrid,其中一列設置單選按鈕作爲itemrenderer。 我的要求是每次只能選擇一個單選按鈕。如果我們單擊一個單選按鈕,列中的所有其他單選按鈕都應該被​​取消選中。單選按鈕作爲flex中的datagrid列的itemrenderer

我的代碼如下(ManagePagesPopup.mxml)

<fx:Declarations> 
      <s:RadioButtonGroup id="radGrp" /> 
</fx:Declarations><s:DataGrid id="pageDataGrid" dataProvider="{pageDetailsAc}" > 
    <s:columns> 
     <s:ArrayList> 
      <s:GridColumn headerText="Select" dataField="select" itemRenderer="components.PageSelectRadioButton" ></s:GridColumn> 
      <s:GridColumn dataField="pageName" headerText="Page Template Name"></s:GridColumn> 
      <s:GridColumn dataField="pageType" headerText="Page Type"></s:GridColumn> 
      <s:GridColumn dataField="pageSize" headerText="Page Size"></s:GridColumn> 
      <s:GridColumn dataField="order" headerText="Order" editable="true" itemRenderer="components.OrderTextInput"></s:GridColumn> 
     </s:ArrayList> 
    </s:columns> 
</s:DataGrid> 

在PageSelectRadioButton.mxml(項目渲染器)文件我寫了下面的代碼

<s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx" > 


<fx:Script> 
    <![CDATA[  
    [Bindable] 
     public var mg:ManagePagesPopup=new ManagePagesPopup(); 
    ]]> 
</fx:Script> 

    <s:RadioButton id="selectRadio" groupName="{mg.radGrp}" /> 

我哪裏做的錯誤任何幫助。

回答

1

好了,基本上你爲每個項目渲染分配不同的單選按鈕組,因爲你是實例爲每個項目渲染器一個新的ManagesPopUp。

0

添加聯itemRenderer,使這項工作如下: -

<s:GridColumn headerText="Select" dataField="select" > 
    <s:itemRenderer> 
    <fx:Component> 
    <s:GridItemRenderer> 
     <s:RadioButton id="selectRadio" group="{outerDocument.radGrp}" /> 
    </s:GridItemRenderer> 
    </fx:Component> 
    </s:itemRenderer> 
</s:GridColumn> 
相關問題