Chr*_*eis 2 apache-flex datagrid column-width
在我的flex应用程序中,我将列的宽度和可见性存储在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();
Run Code Online (Sandbox Code Playgroud)
问题似乎是设置可见性(它正确设置可见字段但是会增加宽度)...我在设置宽度(循环外部)之后以及循环之前尝试设置它.如果我不对可见性做任何事情,它会正确调整列的大小.
有任何想法吗?
在类文件的顶部添加import语句:
import mx.core.mx_internal;
然后使用mx_internal命名空间删除,删除列的所有者,更改宽度,然后重新设置父级:
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;
}
Run Code Online (Sandbox Code Playgroud)
这应该做的伎俩(好吧,它经过几天的咒骂后为我们做了)