今天,我决定测试spark datagrid而不是mx:Datatagrid。 但是出现了一个问题:我没有找到wordWrap选项,你知道如何解决这个问题吗?
<s:DataGrid id="scrollableDG" borderVisible="true" editable="true"
width="100%" height="{bgSuivi.height-90-90}">
//Setup columns for scrollable datagrid
var gridColumn:GridColumn = new GridColumn();
gridColumn.dataField="scRub2";
gridColumn.headerText = "Rub1";
gridColumn.width = 80;
gridColumn.editable = true;
columnLst.addItem(gridColumn);
var gridColumn:GridColumn = new GridColumn();
gridColumn.dataField="scRub3";
gridColumn.headerText = "Rub1";
gridColumn.width = 80;
gridColumn.editable = true;
columnLst.addItem(gridColumn);
var gridColumn:GridColumn = new GridColumn();
gridColumn.dataField="scRub4";
gridColumn.headerText = "Rub1";
gridColumn.width = 80;
gridColumn.editable = true;
columnLst.addItem(gridColumn);
scrollableDG.columns = columnLst;
由于
答案 0 :(得分:8)
原始海报未选择答案我将前两个合并为一个 超级 回答! :P
您可以使用variableRowHeight在Spark DataGrid的所有列上启用自动换行:
<s:DataGrid variableRowHeight="true">
</s:DataGrid>
或者,您可以使用默认GridColumn项呈示器上的自动换行属性在单个列上启用自动换行:
<s:GridColumn dataField="fields.description" headerText="Description" >
<s:itemRenderer>
<fx:Component>
<s:DefaultGridItemRenderer wordWrap="true"/>
</fx:Component>
</s:itemRenderer>
</s:GridColumn>
此外,在Grid Column示例中,如果您想要防止水平滚动条,我建议您设置宽度:
<s:GridColumn width="{dataGrid.width-column1.width-column3.width}" dataField="fields.description" headerText="Description" >
<s:itemRenderer>
<fx:Component>
<s:DefaultGridItemRenderer wordWrap="true"/>
</fx:Component>
</s:itemRenderer>
</s:GridColumn>
我发现我必须将变量行高设置为true并设置列宽以获得我正在寻找的行为。
答案 1 :(得分:1)
请参阅:
http://hansmuller-flex.blogspot.com/2011/05/controlling-text-wrapping-in-datagrid.html http://forums.adobe.com/message/4029916
答案 2 :(得分:0)
<强> [编辑] 强>
糟糕,我的原始答案是指MX DataGridColumn
组件,而不是Spark GridColumn
。修改后的答案......
网格的默认项呈示器为DataGridItemRenderer
,并且它具有需要设置为true的自动换行属性。不确定,但您可能还需要将网格的variableRowHeight
属性设置为true ...
要在MXML中执行此操作,它看起来像这样:
<s:DataGrid variableRowHeight="true">
<s:itemRenderer>
<fx:Component>
<s:DataGridItemRenderer wordWrap="true" />
</fx:Component>
</s:itemRenderer>
</s:DataGrid>
答案 3 :(得分:0)
在 flex4.6 之前,没有 s :DataGridItemRenderer,但有 mx :DataGridItemRenderer。所以,代码将是:
<s:GridColumn headerText="foo" labelFunction="fooLabelFunction">
<s:itemRenderer>
<fx:Component>
<mx:DataGridItemRenderer wordWrap="true" />
</fx:Component>
</s:itemRenderer>
</s:GridColumn>