flex advanceDatagrid с вопросом о радиокнопках - PullRequest
0 голосов
/ 23 июля 2010

Я использую Advanced DataGrid из Flex 3 с иерархическими данными, а также я добавил список плиток в качестве средства визуализации элементов в другом столбце в этом списке плиток. Я добавил радио-кнопку в качестве средства визуализации элементов, если я изменю значение, выбранное для радио, иерархическое дерево может развернуться, еслипоявится полоса прокрутки, значение радиокнопки меняется

<mx:AdvancedDataGrid contextMenu="{cm}" backgroundAlpha="0" styleName="TreeUser" dataProvider="{modelInstance._treeUserXml}" 
id="treeAdg" width="100%" height="100%" showHeaders="false" doubleClick="treeDoubleClick(event)" doubleClickEnabled="true" 
displayItemsExpanded="false" click="onItemClick(event)" borderStyle="none" rowHeight="25">
<mx:columns>
    <mx:AdvancedDataGridColumn dataField="name"/>
    <mx:AdvancedDataGridColumn id="treeItem" itemRenderer="com.Frontend.views.TreeUser.TreeStructureTileList"/>
</mx:columns>

это расширенная сетка данных, добавляющая иерархические данные в качестве поставщика данных

<containers:TileListEx id="tileList" width="100%" height="100%" textAlign="left"
    horizontalScrollPolicy="off" verticalScrollPolicy="off" direction="horizontal"
    dataProvider="{data.driver}" itemClick="tileItemClick(event)"
    backgroundAlpha="0" borderStyle="none" paddingLeft="0" paddingTop="0"
    useRollOver="false" rowHeight="25" itemRenderer="com.Frontend.views.TreeUser.tieListRenderer">
</containers:TileListEx>

, и этосписок листов, в который я добавил data.driver в качестве поставщика данных <mx:RadioButton id="radio" label="{data.name}" click="checkClick(event)" width="100%"/>

если я щелкну значение переключателя, его значение меняется, но если появится прокрутка, значение будет меняться случайным образом из-за itemrenderer, помогите мне решить эту проблему

1 Ответ

0 голосов
/ 23 июля 2010

Проблема, с которой вы сталкиваетесь, заключается в том, что компоненты, созданные как экземпляры itemRenderer, можно повторно использовать в вашем TileList. Так, если, скажем, вы щелкнете RadioButton, который является itemRenderer первого элемента списка, а затем прокрутите вниз, то нажатая RadioButton (которая исчезла из-за прокрутки) будет использоваться как itemRenderer одного из появившихся элементов. Что вам нужно сделать, так это сделать свой itemRenderer зависимым от свойства data, например, добавить к нему свойство selected и, например, отобразить RadioButton, если проверено, если data.selected == true. Вам также необходимо установить для выбранного значения соответствующее значение в вашем обработчике щелчков RadioButton.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...