Apache flex 设置AdvancedDataGrid';高级DataGridRenderProvider渲染时的行高度
灵活的家伙 无法使用自定义AdvancedDataGridRenderProvider datagrid渲染器设置AdvancedDataGrid中的行高度 代码如下Apache flex 设置AdvancedDataGrid';高级DataGridRenderProvider渲染时的行高度,apache-flex,itemrenderer,advanceddatagrid,Apache Flex,Itemrenderer,Advanceddatagrid,灵活的家伙 无法使用自定义AdvancedDataGridRenderProvider datagrid渲染器设置AdvancedDataGrid中的行高度 代码如下 <mx:AdvancedDataGrid id="docId" visible="true" width="100%" height="100%"
<mx:AdvancedDataGrid id="docId"
visible="true"
width="100%" height="100%"
dataProvider="{data}"
horizontalScrollPolicy="on"
verticalScrollPolicy="on"
styleName="MyStyle"
styleFunction="getRowColours"
headerStyleName="MyStyle2"
>
<mx:columns>
<mx:AdvancedDataGridColumn id="Name" dataField="name"
headerText="Name" />
<mx:AdvancedDataGridColumn id="Value" dataField="values"
headerText="Value"
editable="true" />
</mx:columns>
<mx:rendererProviders>
<mx:AdvancedDataGridRendererProvider id="DocID2"
columnIndex="1" columnSpan="1"
renderer="{new ClassFactory(MyRenderer)}" />
</mx:rendererProviders>
</mx:AdvancedDataGrid>
您尚未在ADG中设置variableRowHeight=true。如果不希望使用rowHeight=Number变量,也可以使用它。从这里开始,您的项目渲染器需要有一个特定的高度(数字),而不是一个百分比,否则它将无法工作。谢谢@J_a_X,我对其进行了重新处理,并按照需要按预期工作。
<mx:AdvancedDataGrid id="adg" dataProvider="{input}" height="350" variableRowHeight="true" >
<mx:columns>
<mx:AdvancedDataGridColumn dataField="company" headerText="Company"/>
<mx:AdvancedDataGridColumn dataField="product" headerText="Product"/>
</mx:columns>
<mx:rendererProviders>
<mx:AdvancedDataGridRendererProvider id="myDataGridRenderer"
columnIndex="1" columnSpan="1"
renderer="{new ClassFactory(DataGridRowTestRenderer)}" />
</mx:rendererProviders>
</mx:AdvancedDataGrid>
import spark.components.Label;
import spark.components.TextArea;
private var label1:Label;
private var textArea1:TextArea;
private var index:int;
override public function set data(object:Object):void {
super.data = object;
this.removeAllElements();
label1 = new Label();
label1.text = object.company;
this.addElement(label1);
var textArea:TextArea = new TextArea();
//textArea.text = object.product;
//textArea.heightInLines = 2;
index = object.index as int;
textArea.heightInLines = index+1;
textArea.text = object.product;
/* if((index%2) == 0){
textArea.heightInLines = 2;
}else{
textArea.heightInLines = 4;
} */
this.addElement(textArea);
}
override public function validateDisplayList():void{
super.validateDisplayList();
}
]]>