在我flex的应用程序,我的店的宽度和visiblility列在xml文件。当的应用程序载读xml文件并设定他列价值观作为适用:

for(i = 0; i < columnsOrder.length; i++){
    newOrder[i] = myDG.columns[Number(columnsOrder[i]) - 1];
    newOrder[i].visible = (Number(columnsVisiblity[i]) == 1);
    newOrder[i].width = Number(columnsWidth[i]);
}
myDG.columns = newOrder;
myDG.invalidateList();

该问题似乎是设置的知名度(它规定的可见的领域正确的,但混乱的宽度)...我已经试过了设定后设定的宽度(外部环)和前的循环。它调整列正确,如果我不做任何与的可见性。

任何想法?

有帮助吗?

解决方案

在类文件的顶部添加import语句:

进口mx.core.mx_internal;

然后删除使用mx_internal命名空间,删除列的所有者,改变宽度,然后reasign父:

public static function resizeColumn(col:DataGridColumn, size:int):void
    {
        var owner:* = col.mx_internal::owner
        col.mx_internal::owner = null;

        col.width = size;

        col.mx_internal::owner = owner;
    }

这应该做的伎俩(当然,它为我们做了一对夫妇的咒骂天之后)

其他提示

是你horizontalScrollPolicy设置虚假的数据表格?

"如果数据表格的horizontalScrollPolicy财产假,所有的可见列必须适合于可显示的区域,数据网格不会永远的荣誉列宽如果总宽列是太大或太小为可显示区域。"

http://livedocs.adobe.com/flex/3/langref/mx/controls/dataGridClasses/DataGridColumn.html#width

我能得到它通过调用函数中的上述循环两次工作... ...在第一时间将其添加可见列,第二次它设置正确的宽度。不是最好的解决方案,但我不能在这上面花更多的时间。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top