2010-10-05 3 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> 

Renderer

<?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> 

Radio Кнопка выбора обработчика событий

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

Вы получаете что-нибудь из отладчика перед сбоем? Я склонен думать, что может произойти переполнение стека с вашей привязкой ... –

+0

Отладчик не предоставляет никакой дополнительной информации. – Mads610

ответ

0

Я был подобный вопрос один раз, но, похоже, не может вспомнить, как я решил, как это было довольно давно.

1

Я получил код для работы с использованием события изменения группы переключателей, а не пользовательского/динамического события в рендерере элемента переключателя. Тем не менее, я все еще не совсем понимаю (если/почему) использование динамических событий вызвало проблему.

Смежные вопросы