【问题标题】:How to add wordWrap on spark GridColumn如何在火花 GridColumn 上添加 wordWrap
【发布时间】:2012-05-31 06:06:40
【问题描述】:

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

谢谢

【问题讨论】:

  • 我认为您的意思是“Spark DataGrid 而不是 of MX DataGrid”——而不是将 Spark DataGrid inside 放在 MX DataGrid 中。您的代码示例似乎证实了这一点,但我想我会为大家澄清。您可能需要编辑问题以反映这一点:)

标签: actionscript-3 apache-flex flash-builder mxml


【解决方案1】:

原发帖者没有选择答案我要把前两个合二为一超级答案! :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 并设置列宽才能获得我正在寻找的行为。

【讨论】:

  • 我正在寻找一些相同的东西,谢谢分享。但我的另一个问题是如何将 wordWrap 属性设置为列标题。如果长
【解决方案2】:

[编辑]

糟糕,我最初的回答是指 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】:

直到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>

【讨论】:

  • 我尝试使用 mx DataGridItemRenderer 并出现此错误:TypeError:错误 #1009:无法访问空对象引用的属性或方法。在 spark.components::Group/addElement()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\Group.as:1342] 在 spark.components.gridClasses::GridLayout/createTypicalItemRenderer ()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\gridClasses\GridLayout.as:748] 在 spark.components.gridClasses::GridLayout/updateTypicalCellSizes()
猜你喜欢
  • 2012-06-06
  • 2017-07-05
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 2015-05-03
  • 1970-01-01
相关资源
最近更新 更多