我有一个面板里面有一个数据网格和一个按钮。功能是当我点击按钮时,一行被添加到数据网格。我已经用%描述了窗格的高度和宽度。但随着数据网格中行数的增加,由于面板高度固定,数据网格中会出现滚动条。如何动态增加flex中的面板高度?
但我希望面板高度动态增加,因为我增加了数据网格行。谁来帮帮我。 这是我的Flex代码:
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
import mx.collections.XMLListCollection;
[Bindable]
private var initDG:ArrayCollection = new ArrayCollection([
{Select:true},
]);
private function addTaskRow(event:MouseEvent):void
{
taskDataGrid.dataProvider.addItem(
{
}
);
}
]]>
</mx:Script>
<mx:Panel x="20" y="250" width="75%" height="20%" layout="absolute" id="taskPanel" title="Review Task Details" >
<mx:VBox width="100%" height="100%" >
<mx:DataGrid id="taskDataGrid" dataProvider="{initDG}" variableRowHeight="true" editable="true" height="85%" width="100%">
<mx:columns>
<mx:DataGridColumn dataField="Select"
editable="true"
rendererIsEditor="true"
itemRenderer="mx.controls.CheckBox"
editorDataField="selected"/>
<mx:DataGridColumn dataField="TaskName"
width="220"
editable="true"
rendererIsEditor="true"
itemRenderer="components.taskComponent"/>
<mx:DataGridColumn dataField="TaskId"
itemRenderer="mx.controls.TextInput" />
<mx:DataGridColumn dataField="TaskType"
itemRenderer="mx.controls.TextInput"/>
<mx:DataGridColumn dataField="ProjectWon"
itemRenderer="mx.controls.TextInput"/>
<mx:DataGridColumn dataField="ItemCode"
itemRenderer="mx.controls.TextInput"/>
<mx:DataGridColumn dataField="ItemVersion"
itemRenderer="mx.controls.TextInput"/>
</mx:columns>
</mx:DataGrid>
<mx:Button id="addTask" label="Add Task" click="addTaskRow(event)"/>
</mx:VBox>
</mx:Panel>
非常感谢你..我按照自己的意愿工作..我增加了数据网格高度(从23到30),这样我就没有滚动条了。 但当我添加行时,每行添加一些额外的空间在底部。这是什么原因? – Angeline 2009-10-08 06:25:06
尝试摆弄DataGrid上的paddingTop和paddingBottom值。不幸的是,我找不到一个可靠的方法来计算DataGrid的确切高度。我会继续寻找。 – 2009-10-08 08:03:09
挂起,刚刚意识到你所说的 - 你的代码正在做的是每次添加一行时将数据网格的高度增加30--但每个新行增加的数量少于30.这样,DataGrid就会比它大需要。尝试添加少于30 - >从24开始,并从那里上去。 – 2009-10-08 08:08:48