Spark Datagrid百分比宽度列

时间:2012-05-22 22:47:47

标签: flex mxml

我想在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>

但任何作品。

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

感谢您的帮助。

1 个答案:

答案 0 :(得分: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>

干杯 维氏