Définir la dataGridColumn de ItemRenderer dynamiquement
J'ai cette grille de données:
<mx:DataGrid id="myDataGrid">
<mx:columns>
<mx:DataGridColumn dataField="colA" headerText="Column A:" width="40"
headerRenderer="path.customComponents.VerticalHeader"
itemRenderer="path.customComponents.CustomDataGridItemRenderer" />
</mx:Columns>
</mx:DataGrid>
Seulement je ne sais pas à l'avance combien de colonnes, il y aura. J'ai donc essayé de construction, les colonnes avec une fonction ActionScript:
private var _columns:Array;
[Bindable]
public function set columns(value:Array):void
{
var c:Array = [];
for each(var object:Object in value)
{
var column:DataGridColumn = new DataGridColumn();
column.headerText=object.name;
column.width=40;
//Setting the Renderers like this doesn't work!
column.headerRenderer =
path.customComponents.VerticalHeader;
column.itemRenderer =
path.customComponents.CustomDataGridItemRenderer;
c.push(c);
}
myDataGrid.columns = c;
}
public function get columns():Array
{
return _columns;
}
Mais pour une raison quelconque, le rend ne peut pas être défini comme ceci. (la colonne.itemRenderer = com.ItemRenderer).
Quelle est la bonne façon de définir ces rend dynamiquement?
OriginalL'auteur Maurits de Boer | 2009-11-27
Vous devez vous connecter pour publier un commentaire.
itemRenderer
etheaderRenderer
s'attend à unemx.core.IFactory
de sa valeur. En mxml, la chaîne de la valeur que vous transmettez est automatiquement converti enmx.core.ClassFactory
. Dans ActionScript, vous devez le faire vous-même.Oh, l'homme, vous définitivement sauvé ma journée! 🙂
OriginalL'auteur Amarghosh