Apache flex Flex 4,AdvancedDataGrid:初始列宽
我发现advanceddatagrid列的宽度有问题。 首先,我的布局是一个HDividedBox,左边是导航,右边是一个模块,包含advanceddatagrid 左侧:导航 右侧:模块(例如advanceddatagrid) 大多数列的宽度是固定的,有些列的宽度是最小的。现在,最初列的宽度是正确的 所以问题是,无论何时我加载一个新模块,然后重新加载advanceddatagrid,列的初始宽度都是不同的,尽管我在加载模块的过程中没有做任何更改。固定宽度和最小宽度最初都不正确。 我最近看到有一个解决方案,可以解决柱体宽度错误的问题,看起来是这样的:Apache flex Flex 4,AdvancedDataGrid:初始列宽,apache-flex,advanceddatagrid,column-width,Apache Flex,Advanceddatagrid,Column Width,我发现advanceddatagrid列的宽度有问题。 首先,我的布局是一个HDividedBox,左边是导航,右边是一个模块,包含advanceddatagrid 左侧:导航 右侧:模块(例如advanceddatagrid) 大多数列的宽度是固定的,有些列的宽度是最小的。现在,最初列的宽度是正确的 所以问题是,无论何时我加载一个新模块,然后重新加载advanceddatagrid,列的初始宽度都是不同的,尽管我在加载模块的过程中没有做任何更改。固定宽度和最小宽度最初都不正确。 我最近看到有一
var oldPolicy:String = advanceddatagrid.myScrollPolicy;
advanceddatagrid.myScrollPolicy = ScrollPolicy.ON;
for(var i:int = 0; i < advanceddatagrid.columns.length; i++) {
var column:AdvancedDataGridColumn = advanceddatagrid.columns[i] as AdvancedDataGridColumn;
advanceddatagrid.column.width = column.width;
}
advanceddatagrid.validateNow();
advanceddatagrid.myScrollPolicy = oldPolicy;
advanceddatagrid.validateNow();
var oldPolicy:String=advanceddatagrid.myScrollPolicy;
advanceddatagrid.myScrollPolicy=ScrollPolicy.ON;
for(变量i:int=0;i
总的来说,这只是对ScrollPolicy的临时更改,重新设置列宽,然后再更改回来。但它仍然不起作用
有人有线索吗?一些相关的参考资料可能会有所帮助(第一个对我有用): 总结第一篇文章(归功于Nick Schneble):
这似乎有点可笑,但如果在数据网格中的基础数据发生变化时执行此方法,则列的布局将非常漂亮。在
for
循环中,这一行看起来可疑:advanceddatagrid.column.width=advanceddatagrid.column.width代码>。它不应该使用上一行的column变量吗?哦,你说得对。我只是把它拼错了。在我的原始脚本中,它是正确的。
public function resizeColumns () : void
{
grid.validateNow ();
// forces the columns to size themselves properly
for each (var column : AdvancedDataGridColumn in grid.columns)
{
column.width = column.width;
}
}