【问题标题】:Flex 4.5: Setting textAlign GridColumn's itemRenderer through AS3Flex 4.5:通过 AS3 设置 textAlign GridColumn 的 itemRenderer
【发布时间】:2012-05-01 05:26:24
【问题描述】:

也许这真的很简单,但我不知道如何在 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");
    }
}

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

【问题讨论】:

    标签: datagrid flex-spark itemrenderer text-align


    【解决方案1】:

    扩展 DefaultGridItemRenderer.......

    override public function getTextStyles():TextFormat{
      var tf:TextFormat = super.getTextStyles();
      tf.align = "right";
      return tf;
    }
    

    【讨论】:

      【解决方案2】:

      扩展 DefaultGridItemRenderer 和 add 方法:

      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;
      

      【讨论】:

        猜你喜欢
        • 2011-05-02
        • 1970-01-01
        • 2012-01-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-04
        • 1970-01-01
        • 2011-10-02
        相关资源
        最近更新 更多