5

今天,我决定测试 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;

谢谢

4

3 回答 3

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 并设置列宽才能获得我正在寻找的行为。

于 2012-09-07T20:17:34.800 回答
0

[编辑]

糟糕,我最初的答案是指 MXDataGridColumn组件,而不是 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>
于 2012-05-24T17:20:52.557 回答
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>
于 2012-06-28T08:05:14.400 回答