【问题标题】:flex: editing datagrid informationflex:编辑数据网格信息
【发布时间】:2011-01-11 00:24:24
【问题描述】:

我有一个简单的数据网格,它正在导入一个 xml 文件。我在每一行的末尾都有一个编辑按钮,单击它会弹出一个可编辑的表单,其中包含该行的信息。我正在使用事件侦听器将信息传递回主数据网格。我唯一不明白的是,你如何更新数据网格中的数据字段值。

我尝试了很多不同的东西,变种

myDatagrid.nameField.text = "人名" nameField[1].text = "人名"

有人知道我如何定位数据网格的特定行来编辑其中的值吗?

我对数据绑定进行了一些研究,但我不知道如何将表单(在单独的类中)绑定到主 mxml 文件中的数据网格。所以,不确定这是否是要走的路。

【问题讨论】:

    标签: apache-flex datagrid


    【解决方案1】:

    最好为你的 dataGrid 绑定一个 dataProvider。假设您的数据来自 ArrayCollection:

    [Bindable] private var myData:ArrayCollection = new ArrayCollection();
    

    然后在你的 MXML 中:

    <mx:DataGrid dataPrivider="{myData}" ...>
    

    现在使用大括号绑定它,因此对 myData var 的任何更改都会自动在网格中更新。然后您的编辑表单可以直接更新您的 myData var。我不确定绑定到另一个类中的某些东西有什么问题,您可能需要将表单绑定到类似的东西

    Application.application.myData
    

    如果您真的想避免数据绑定并且需要针对特定​​行,您可能只需获取 dataGrid 的 selectedItem。所以会更像

    myDatagrid.selectedItem.nameField.text = "Person's name"
    

    【讨论】:

    • 谢谢,是的,我觉得数据绑定是要走的路,但我想我想知道如何做到这两点。我将尝试数据绑定,但对于 myDataGrid.selectedItem... 是否仅适用于单击的项目?就像如果我从表单中的事件侦听器返回数据,那么它仍然会知道所选项目是什么?
    • @Brent - 未经测试无法确定,但除非您取消选择它,否则它应该保持选中状态。如果不是,您也可以将 selectedIndex 传递给表单,然后当您返回数据时,设置 selectedIndex,除非您的 DP 更改,否则您最终应该选择相同的项目。
    • 好吧,作为后续,我得到了表单和数据网格之间的数据绑定,这在 flex 中是一件很棒的事情。
    • 绑定是最强大的功能之一。一句话就能实现如此多的自动化。顺便说一句,如果我的回答对您有所帮助,那么习惯上通过单击复选标记并可能投票来接受它。
    猜你喜欢
    • 2012-02-10
    • 2011-01-29
    • 1970-01-01
    • 2021-03-23
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    • 2011-03-04
    • 2012-11-04
    相关资源
    最近更新 更多