У меня есть mx: Datagrid в witch Я бы хотел добавить combobox в качестве средства рендеринга элементов.Flex mx: DataGrid - Создать combobox ItemRenderer
<mx:DataGrid id="dgEnsActes"
horizontalScrollPolicy="on"
dataProvider="{arListeDevis}"
width="100%" height="100%" >
<mx:columns>
<mx:DataGridColumn dataField="dvIndex" headerText="" headerStyleName="dgHeader" fontWeight="normal" width="40"/>
<mx:DataGridColumn dataField="dvLibelle" headerText="Libellé" headerStyleName="dgHeader" wordWrap="true" fontWeight="normal" width="180"/>
<mx:DataGridColumn dataField="dvTotal" headerText="Total" headerStyleName="dgHeader" width="60" fontWeight="normal"/>
<mx:DataGridColumn dataField="dvStatut" headerText="Statut"
rendererIsEditor="true" editorDataField="result" itemRenderer="fr.inters.ui.itemRenderer.irComboEtatDevis"
wordWrap="true" headerStyleName="dgHeader" fontWeight="normal" width="70"/>
<mx:DataGridColumn dataField="dvAcceptDirect" headerText="Création" headerStyleName="dgHeader" width="60" fontWeight="normal"/>
</mx:columns>
</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[
public var result:String="";
[Bindable] var dpValue:Array=[
{label:"Accepté", data:"Accepté"},
{label:"Refusé", data: "Refusé"},
{label:"En attente", data: "En attente"}];
override public function set data(value:Object):void
{
super.data = value;
if (value != null)
{
var currentValue:String = value.size;
var len:int = dpValue.length;
for (var i:int = 0; i < len; i++)
{
if (dpValue[i].data == currentValue)
{
editor.selectedIndex = i;
break;
}
}
}
}
public function onChange():void
{
var index:int = editor.selectedIndex;
result = dpValue[index].data;
}
]]>
</fx:Script>
<mx:ComboBox id="editor" dataProvider="{dpValue}" width="130" change="onChange()"/>
</s:MXDataGridItemRenderer>
Но когда я пытаюсь отладки появляется ошибка, сообщение selectedIndex is undefined
ли кто-нибудь мне помочь?
Благодаря
Спасибо Редактор этого пункта работает хорошо, но знаете ли вы, как сделать то же самое с itemrenderer. Действительно, в моем случае Если я изменяю itemEditor на itemrenderer, появляется ошибка/ – Flex60460
Можете ли вы изменить editible = "false" и использовать его только для отображения? посмотрите на http://www.adobe.com/devnet/flex/videotraining/exercises/ex4_05.html для получения дополнительных идей. Я могу вернуться к вам позже, когда я вернусь домой, чтобы посмотреть на код, который я написал, используя itemrenderers. – ShaunOReilly
Если вы установите true, это нормально. Но на datagrid мы показываем ярлык, а не combobox. спасибо – Flex60460