【问题标题】:Flex mx.controls.DataGrid with conditionally editable cellsFlex mx.controls.DataGrid 有条件可编辑的单元格
【发布时间】:2014-09-24 01:35:30
【问题描述】:

我在页面上有一个mx.controls.DataGrid 数据网格,我的要求是该数据网格上的一些单元格 可以根据系统状态的某些条件进行编辑。

据我所知,我可以通过editable 属性将整个数据网格设置为可编辑,或者通过DataGridColumneditable 属性将列中的所有值设置为可编辑,但我没有看到在数据网格中的单个单元格级别上设置它的方法。

有什么建议吗?

【问题讨论】:

    标签: actionscript-3 apache-flex datagrid


    【解决方案1】:

    你可以找到一个很好的例子here (Preventing a cell from being edited)。它彻底解决了你的问题。只需将示例中的条件更改为您自己的条件即可。

    【讨论】:

    • @Grabar,他是想阻止它被编辑还是相反?
    • @helloflash,有什么区别?通过防止被编辑,他可以做任何他想做的事情。
    • @Grabar,此代码prohibits 编辑专辑column,仅此而已...亚当说他已经知道该怎么做了。
    • 看例子更好。此示例显示如何防止在某些动态条件下编辑单个单元格。使用此代码,您可以根据某些条件控制每个单元格的“编辑可能性”。附言我的昵称是 Crabar,不是 Grabar。
    • 你能用你的例子告诉我如何回答亚当的问题吗?
    【解决方案2】:

    这很好用:

    // cell at the intersection of row 1 and column 2
    
    dg.addEventListener(ListEvent.ITEM_CLICK, cellEditable);
    
    function cellEditable(e:ListEvent):void {
       e.target.editable = (e.rowIndex == 1 && e.columnIndex === 2) ? true : false;
    }
    

    【讨论】:

    • 最后,我采用了另一种方法(将事件处理程序绑定到数据网格的 itemEditBeginning 事件),但这是实现相同结果的等效方法。
    • @AdamParkin - 您可以向我展示您使用其他方法生成的代码吗?谢谢。
    • @AdamParkin - 谢谢。
    猜你喜欢
    • 1970-01-01
    • 2013-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多