我有一個面板裏面有一個數據網格和一個按鈕。功能是當我點擊按鈕時,一行被添加到數據網格。我已經用%描述了窗格的高度和寬度。但隨着數據網格中行數的增加,由於面板高度固定,數據網格中會出現滾動條。如何動態增加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