0

也许这真的很简单,但我不知道如何在 AS3(不是 mxml)中为默认 itemRenderer设置“textAlign”属性。我需要根据类型的属性来调整它,'int'或'Number'右对齐,'String'左对齐等等。

我正在使用 spark DataGrid 并监听 FlexEvent.CREATION_COMPLETE 事件;我无法将 itemRenderer 转换为 DefaultGridItemRenderer,并且 ClassFactory 不提供 setStyle 方法。

public function adjustGrid (e:Event):void
{
    for (var i:int=0; i<grd.columns.length; i++)
    {
        var gridColumn:GridColumn = GridColumn(grd.columns.getItemAt(i));
        DefaultGridItemRenderer(gridColumn.itemRenderer).setStyle("textAlign", "right");
    //ClassFactory(gridColumn.itemRenderer).setStyle("textAlign", "right");
    }
}

任何帮助我都会感激。谢谢。

4

2 回答 2

0

扩展 DefaultGridItemRenderer.......

override public function getTextStyles():TextFormat{
  var tf:TextFormat = super.getTextStyles();
  tf.align = "right";
  return tf;
}
于 2012-05-10T08:48:41.467 回答
0

扩展 DefaultGridItemRenderer 并添加方法:

public function set styles(obj:Object):void
{
    for (var styleProp:String in obj) 
    {
        setStyle(styleProp,obj[styleProp]);
    }
}

然后你可以放任何这样的样式:

    var itemRenderer:ClassFactory = new ClassFactory(DefaultGridItemRenderer);
    itemRenderer.properties = {
        styles:{textAlign:"right", fontWeight:"bold"},
        someOtherProp:"Hello"};
    rightList.itemRenderer = itemRenderer;
于 2015-02-27T05:35:35.560 回答