【问题标题】:Flex Datagrid Editable In runtimeFlex Datagrid 在运行时可编辑
【发布时间】:2012-05-16 14:23:43
【问题描述】:

在我的 flex 应用程序中,我有一个数据网格,因为 2 列可编辑,其余列不可编辑。在某些情况下,在运行时我必须将可编辑列更改为不可编辑......我该怎么做?有什么建议?? 这是我的代码...

<mx:AdvancedDataGrid id="adg1" editable = "true" designViewDataType="tree">
                        <mx:columns>
                                    <mx:AdvancedDataGridColumn headerText="Name" dataField="name" editable ="true"/>
                                    <mx:AdvancedDataGridColumn headerText="Age" dataField="age" editable ="true"/>
                                    <mx:AdvancedDataGridColumn headerText="Roll No" dataField="num" editable = "false"/>
                        </mx:columns>
            </mx:AdvancedDataGrid>

提前感谢..

【问题讨论】:

  • 在 AS3 脚本中执行此操作 (adg1.columns[0] as AdvancedDataGridColumn).editable = false; //对于第一列。您可以替换索引以获取其他列。

标签: apache-flex datagrid flex4 advanceddatagrid


【解决方案1】:

方法一: 您可以遍历列,并检查可编辑属性:

            for (var i:int = 0; i < adg1.columns.length; i++) 
            {
                if (adg1.columns[i] is AdvancedDataGridColumn)
                {
                    var myCol:AdvancedDataGridColumn = adg1.columns[i] as AdvancedDataGridColumn;

                    trace(myCol.editable);  

                    //for example, change Age column to non editable
                    if (myCol.headerText == 'Age')
                    {
                        myCol.editable = false;
                    }
                }
            }

方法二:

如果你为这样的列设置 id:

<mx:AdvancedDataGridColumn id="ageCol" headerText="Age" dataField="age" editable ="true"/>

您可以通过以下方式访问它:

trace("before ageCol editable:",ageCol.editable);

var indx:int = adg1.columns.indexOf(ageCol);
adg1.columns[indx].editable = false;

trace("after ageCol editable:",ageCol.editable);

或者如果适用,就这样做:

ageCol.editable = false;

【讨论】:

  • 第一种方法在 IF 条件下使用 dataField.. headerText 更频繁地发生变化
  • @Kamal 好吧,我想他明白了 :) 无论如何感谢您的评论。
【解决方案2】:

adg1.columns 将返回列数组

遍历将每个列转换为 AdvancedDataGridColumn 并使用“dataField”检查条件,并根据需要使其可编辑或不可编辑。

【讨论】:

    猜你喜欢
    • 2010-09-27
    • 2011-02-09
    • 1970-01-01
    • 2013-07-29
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-29
    相关资源
    最近更新 更多