将 ag-grid 列绑定到数组

Posted

技术标签:

【中文标题】将 ag-grid 列绑定到数组【英文标题】:Binding ag-grid columns to an array 【发布时间】:2016-06-24 07:35:40 【问题描述】:

我是 ag-grid 的新手,并且正在使用带有 angularjs (1.X) 的 ag-grid。我遇到了一些问题,非常感谢您的帮助。

在我的场景中,我的网格中的列数不是固定的。根据用户输入,网格列及其计数会发生变化。因此,我根据服务器返回的数据(通过 ajax 调用)动态定义我的列定义。

这就是我的数据的样子。

rowData = [  "name": "Tom", "Skills": ["JS", "Angular", "php" ]  , 
             "name": "Tim", "Skills": ["C#, "Java", "C++" ] 
          ]

完成动态生成 columnDef 后,我的 columnDef 如下所示:

columnDefs = [  "headerName": "Name", "field": "name",
                "headerName": "Skill1", 
                 "valueGetter": "getSkill", 
                 "colId": 0, 
                 "onCellValueChanged" = skillEdited,
                 "editable": true ,
                "headerName": "Skill2", 
                 "valueGetter": "getSkill", 
                 "colId": 1, 
                 "onCellValueChanged" = skillEdited,
                 "editable": true ,
                "headerName": "Skill3", 
                 "valueGetter": "getSkill", 
                 "colId": 2, 
                 "onCellValueChanged" = skillEdited,
                 "editable": true 
             ]

问题 1: 当我更改网格中的技能时,我的“skillEdited”方法被调用,但 params.newValue 设置为 oldValue 并且 params.oldValue 设置为 undefined。所以,我基本上没有得到新的价值。当用户更改技能时,我希望更新 rowData 类。我怎样才能做到这一点?

问题 2:我是否正确绑定了数据和列?还是我做错了什么?

非常感谢您的帮助。 维吉

【问题讨论】:

也许 valueGetter 搞砸了。尝试使名称可编辑,看看它是否工作相同。 @Walfrat 感谢您的回复.....使用 newValueHandler 而不是 onCellValueChanged 解决了我的问题。 没问题,回答你自己的问题并验证它,这样有同样问题的人就会知道。 【参考方案1】:

使用 newValueHandler 而不是 onCellValueChanged 解决了我的问题...

【讨论】:

您可以接受您的答案是正确的。它帮助别人。谢谢

以上是关于将 ag-grid 列绑定到数组的主要内容,如果未能解决你的问题,请参考以下文章

Silverlight 使绑定到数组项的列可编辑

我想根据条件在 ag-grid 中选择行(复选框)

在 Ag-Grid 中如何读取所有页面特定的单元格数据并存储到数组中

带有核心数据的 Cocoa 绑定不更新所有列

用于过滤整个字符串数组的 Ag-grid 文本过滤器

如何基于二维数组填充 WPF 网格