2010-10-05 18 views
0

崩潰我有一個數據網格中的單選按鈕組,每當我試圖改變選中的單選按鈕的網頁崩潰。以下是我如何將單選按鈕放在數據網格中。任何人都可以看到問題的原因是什麼?數據網格數據提供商變化

MXML

<mx:Accordion> 
<fx:Declarations> 
<s:RadioButtonGroup id="cover"/> 
</fx:Declarations> 
<fx:Script> 
<![CDATA[[ 
[Bindable] public var arrColl = new ArrayCollection(); 
arrColl.addItem(new ObjectProxy({name:"Jon Doe", position:1, cover:true, group:cover})); 
arrColl.addItem(new ObjectProxy({name:"John Smith", position:2, cover:true, group:cover})); 
]]> 
</fx:Script> 
<fx:Binding source="{dg.dataProvider as ArrayCollection}" destination="{arrColl}"/> 
<mx:DataGrid id="dg" dataProvider="{arrColl}" ..> 
... 
</mx:DataGrid> 

渲染

<?xml version="1.0" encoding="utf-8"?> 
<s:MXDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"     xmlns:s="library://ns.adobe.com/flex/spark" 
xmlns:mx="library://ns.adobe.com/flex/mx" 
focusEnabled="true"> 
<fx:Script> 
<![CDATA[ 
import mx.events.DynamicEvent; 
public function selection(event:MouseEvent):void 
{ 
var selectionEvt:DynamicEvent = new DynamicEvent("selectionEvt", true); 
selectionEvt.data = this.data; 
dispatchEvent(selectionEvt); 
} 
]]> 
</fx:Script> 
<s:RadioButton label="Cover" group="{data.group}" selected="{data.cover}" click="selection(event)"/> 
</s:MXDataGridItemRenderer> 

選擇單選按鈕事件處理程序

private function updateDp(event:DynamicEvent):void 
{ 
if (event.type == "selectionEvt") 
{ 
for (var i:int = 0; i < editGrid.dataProvider.length; i++) 
{ 
editGrid.dataProvider.getItemAt(i).cover = false; // Unselect all members of radio button group 
} 
var index:int = editGrid.dataProvider.getItemIndex(event.data); 
editGrid.dataProvider.getItemAt(index).cover = true; // Select target radio button 
} 
+0

你得到什麼,在撞車前的調試器?我傾向於認爲這可能是一個堆棧溢出與你結合... – 2010-10-06 10:51:54

+0

調試器不提供任何其他信息回事。 – Mads610 2010-10-06 20:53:46

回答

0

我有一個類似的問題曾經有過,但似乎無法回憶我之前解決問題的方式。

1

我的代碼使用單選按鈕組的change事件,而不是單選按鈕項目渲染器內的自定義/動態事件的工作。但是,我仍然不太明白(如果/爲什麼)使用動態事件導致了問題。

相關問題