Flex - 以编程方式为GridColumn设置可编辑属性

时间:2015-08-02 09:21:17

标签: actionscript-3 loops flex datagrid actionscript

是否可以动态更改属性"可编辑"关于另一列的值的GridColumn。 一旦我填充了dataProvider,我想循环使用dataGrid行,但是我找不到它怎么做?

感谢。

2 个答案:

答案 0 :(得分:0)

我试过

editable="{if (data['Type']=='foo'){return true;} else {return false;}}"

但是构建失败。

如何使用itemRenderer?

            <s:GridColumn dataField="Type" width="100" editable="false"/>
            <s:GridColumn dataField="Name" width="100" editable="false"/>
            <s:GridColumn dataField="Score" width="100" editable="true" rendererIsEditable="true">
                <s:itemRenderer>
                    <fx:Component>
                        <s:GridItemRenderer>
                            <fx:Script>
                                <![CDATA[
                                    override public function set data(value:Object):void {
                                        if (value != null && value != "") {
                                            super.data = value;
                                            if (super.data["Type"] == "foo"){
                                                somefield.editable = true;
                                            }
                                            else{
                                                somefield.editable = false;
                                            }
                                        }
                                    }
                                ]]>
                            </fx:Script>
                            <s:TextInput id="somefield" text="{data.Score}"/>
                        </s:GridItemRenderer>
                    </fx:Component>
                </s:itemRenderer>
            </s:GridColumn>

Run example on wonderfl

答案 1 :(得分:0)

感谢。事实上,我对某些列使用ItemEditor和/或ItemRenderer。

就我而言,我有

<s:GridColumn id="gcAmountEUR" labelFunction="amountFormat" dataField="AmountEUR" headerText="AMOUNT EUR"  width="80" itemEditor="components.gieOrderAmount">
                    <s:itemRenderer>
                        <fx:Component>
                            <s:DefaultGridItemRenderer textAlign="right" />
                        </fx:Component>
                    </s:itemRenderer>
                </s:GridColumn>
                <s:GridColumn dataField="CurrencyCode" headerText="CURRENCY"  width="50" itemEditor="components.gieOrderCurrency"  >
                </s:GridColumn>
                <s:GridColumn id="gcAmount" labelFunction="amountFormat" dataField="Amount" headerText="AMOUNT" width="120" itemEditor="components.gieOrderAmount">
                    <s:itemRenderer>
                        <fx:Component>
                            <s:DefaultGridItemRenderer textAlign="right" />
                        </fx:Component>
                    </s:itemRenderer>
                </s:GridColumn>

datagrig具有editable =“true”属性。

默认情况下,AmountEUR列是可编辑的,Amount列不是。 但是如果一行中Currency的值不是“”,那么我希望AmountEUR不可编辑且金额可编辑。所以我想以编程方式更改每行的列的可编辑属性。 所以我想解析datagrid,为每一行更改AmountEUR的属性值“Editable”和Money,如果Currency不为空。

但也许不是这样做的好方法? 我希望我能说清楚。

安托。