Flex 3的数据网格列宽问题(Flex 3 DataGrid Column Width Probl

2019-07-01 21:29发布

我拉的XML数据,以确定哪些列是可见的,每列的宽度。 我的DataGrid的宽度可以在HDividedBox类的一面sinces其改变。 可见性部分的工作原理,但设置宽度引起头痛。 继承人的代码:

for(loop through column data retrieve from XML)
{ 
    newData[i] = dg.columns[Number(columnsOrder[i]) - 1];
    newData[i].visible = (Number(columnsVisibility[i]) == 1);
    newData[i].width = Number(columnsWidth[i]);
    trace(newData[i].headerText + " w:" + newData[i].width.toString() + " v:" + newData[i].visible.toString());
}
dg.columns = newData;
dg.invalidateList();

在跟踪宽度对于前两项是正确的,但是,它显示为“20”永远连续一个...

Date w:240 v:true
Title w:184 v:true
Requestor w:20 v:true
Approved By w:20 v:true
Category w:20 v:false
Status w:20 v:false
Priority w:20 v:false

当我输出数(columnsWidth [I])它显示为正确的值,因此很奇怪是发生在宽度的分配。

现在一直在寻找这几个小时,并尝试多东西来尝试修复它没有用。

Answer 1:

我的DataGrid的宽度可以在HDividedBox类的一面sinces其改变。

这就是问题就在这里。

我使用Flex 2和Flex 3的DataGridColumn宽度的所面临的相同问题每当DataGrid的宽度不是固定的。 我唯一的解决办法是固定数据网格的宽度或切换到AdvancedDataGrid或其它类似的组件。



Answer 2:

我已经做了在AdvancedDataGrid同样的事情,它的工作原理。 通过设置这些值尝试

  horizontalScrollPolicy="on"
  width="100%

然后添加你这个应该HDividedBox类工作列。



Answer 3:

你可以做到这一点,这是我所相信的是在DataGrid本身就是一个错误。

如果您在DataGrid上设置minWidth =“0”和horizo​​ntalScrollPolicy =“{} ScrollPolicy.AUTO”,然后你可以创建的DataGridColumn具有固定宽度的对象和有它正确遵守。

然而,似乎仍然是与最后一列的问题,在DataGrid仍然较大,那么所有的固定宽度的总和,它会舒展最终的DataGridColumn出来。

你可以解决这个问题通过在没有标题文本等的末尾添加一个空白列



Answer 4:

好了 - 同时为各列的宽度模式的支持,我们碰到的这个自己。 只是信息的小珍闻 - 如果你要明确设置宽度,确保你做这样的事情:

var oldPolicy:String = grid.horizontalScrollPolicy;
grid.horizontalScrollPolicy ="on"
//set your widths here
grid.horizontalScrollPolicy =oldPolicy;


文章来源: Flex 3 DataGrid Column Width Problem