2

我想在使用 mx: datagrid 列之后为列应用百分比宽度。

我尝试了几个测试:

<s:DataGrid id="dgTuVous" fontWeight="normal" 
                                        dataProvider="{DP_PRAT_INIT}"
                                        width="100%" height="100%" 
                                        horizontalScrollPolicy="on"
                                        fontSize="10"

                                        >
                                <s:columns>
                                    <s:ArrayList>
                                        <s:GridColumn dataField="prInitiales" width="40%" headerText="Prat" />
                                        <s:GridColumn  width="60%" dataField="prTuVous"
                                                      headerText="Tu/Vous">
                                            <s:itemEditor>
                                                <fx:Component>
                                                    <s:ComboBoxGridItemEditor>
                                                        <s:dataProvider>
                                                            <s:ArrayList>

                                                                <fx:String>Tu</fx:String>
                                                                <fx:String>Vous</fx:String>
                                                            </s:ArrayList>
                                                        </s:dataProvider>
                                                    </s:ComboBoxGridItemEditor>
                                                </fx:Component>
                                            </s:itemEditor>
                                        </s:GridColumn>

                                    </s:ArrayList>
                                </s:columns>
                            </s:DataGrid>

<s:DataGrid id="dgTuVous" fontWeight="normal" 
                                        dataProvider="{DP_PRAT_INIT}"
                                        width="100%" height="100%" 
                                        horizontalScrollPolicy="on"
                                        fontSize="10"

                                        >
                                <s:columns>
                                    <s:ArrayList>
                                        <s:GridColumn dataField="prInitiales" width=".4" headerText="Prat" />
                                        <s:GridColumn  width=".6" dataField="prTuVous"
                                                      headerText="Tu/Vous">
                                            <s:itemEditor>
                                                <fx:Component>
                                                    <s:ComboBoxGridItemEditor>
                                                        <s:dataProvider>
                                                            <s:ArrayList>

                                                                <fx:String>Tu</fx:String>
                                                                <fx:String>Vous</fx:String>
                                                            </s:ArrayList>
                                                        </s:dataProvider>
                                                    </s:ComboBoxGridItemEditor>
                                                </fx:Component>
                                            </s:itemEditor>
                                        </s:GridColumn>

                                    </s:ArrayList>
                                </s:columns>
                            </s:DataGrid>

但任何工作。

第一个示例创建 flex 错误,第二个,第一列是不可见的。

感谢您的帮助。

4

1 回答 1

6

实际上您不能在 GridColumn 中使用百分比值,但是您可以使用数据绑定来根据 DataGrid 宽度动态计算列宽,如下所示。

<s:DataGrid id="_dg" width="500">
    <s:columns>
        <s:ArrayList>
            <s:GridColumn width="{this._dg.width * 0.1}" headerText="Col 1" />
            <s:GridColumn width="{this._dg.width * 0.2}" headerText="Col 2" />
            <s:GridColumn width="{this._dg.width * 0.3}" headerText="Col 3" />
            <s:GridColumn headerText="Col 4" />
        </s:ArrayList>
    </s:columns>
</s:DataGrid>

干杯维克

于 2012-05-23T04:17:47.973 回答