Actionscript 3 无法在Datagrid中对齐数据
您好,渲染后spark datagrid列中的数据对齐有问题。所有的标题都向左对齐,但是我想做以下事情 1.在列标题名称中间。 2.将文本向右对齐。 3.冻结第一列,以便在水平滚动时,第一列不应水平移动 在这方面的任何帮助都将不胜感激 谢谢和问候Actionscript 3 无法在Datagrid中对齐数据,actionscript-3,apache-flex,flex4,flex3,flex4.5,Actionscript 3,Apache Flex,Flex4,Flex3,Flex4.5,您好,渲染后spark datagrid列中的数据对齐有问题。所有的标题都向左对齐,但是我想做以下事情 1.在列标题名称中间。 2.将文本向右对齐。 3.冻结第一列,以便在水平滚动时,第一列不应水平移动 在这方面的任何帮助都将不胜感激 谢谢和问候 <?xml version="1.0" encoding="utf-8"?> <s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
<?xml version="1.0" encoding="utf-8"?>
<s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
clipAndEnableScrolling="true">
<fx:Script>
<![CDATA[
import flashx.textLayout.formats.BackgroundColor;
import mx.controls.Alert;
import mx.states.SetStyle;
private const POSITIVE_COLOR:uint = 0x000000; // Black
private const NEGATIVE_COLOR:uint = 0xFF0000; // Red
override public function prepare(hasBeenRecycled:Boolean):void {
if (this.data) {
if (column.labelFunction != null ) {
lblData.text = column.labelFunction( data, column );
setStyle("color", (parseInt(this.data.st1) < 0) ? NEGATIVE_COLOR : POSITIVE_COLOR);
} else {
lblData.text = data[column.dataField];
}
}
}
]]>
</fx:Script>
<s:Label id="lblData" top="9" left="7" textAlign="right"/>
</s:GridItemRenderer>
2/将文本向右对齐
我从最简单的开始。在自定义项目渲染器中,您仍然向左对齐(
left=“7”
)。您有两个选项可以修复此问题:
<s:Label id="lblData" top="9" right="7"/>
将标签向右对齐,并导致文本向左溢出
<s:Label id="lblData" top="9" left="7" right="7" textAlign="right"/>
将使标签占据所有可用空间,将文本向右对齐,如果文本太大,则将其截断
1/在列标题名称中间
我认为唯一的方法是创建一个定制的headerRenderer
- 复制整个DefaultGridHeaderRenderer
- 查找id为“labelDisplay”的标签
- 将其
属性更改为textAlign
center
- 指定自定义的headerRenderer:
- 创建一个列表来表示固定列
- 创建一个DataGrid来表示其他列
- 关闭列表的垂直滚动条:您想控制网格中的滚动
- 绑定其垂直滚动位置:当DataGrid垂直滚动时,列表必须跟随,反之亦然
- 绑定所选项目
- 进行一些蒙皮,使其看起来像一个数据网格
GridLayour
中的一些功能,以及覆盖标题的LayoutBase
。或者你可以像RIAstar所说的那样制作双双网格或列表+网格并进行一些蒙皮,但是通过这样做,我很确定会出现一些数据同步和视觉问题。非常感谢RIAstar。当我使用DefaultGridHeaderRenderer时,当我水平滚动时,标题似乎会环绕/展开。对此有任何解决方案吗?