【问题标题】:Binding ag-grid columns to an array将 ag-grid 列绑定到数组
【发布时间】: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 解决了我的问题。
  • 没问题,回答你自己的问题并验证它,这样有同样问题的人就会知道。

标签: ag-grid


【解决方案1】:

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

【讨论】:

  • 您可以接受您的答案是正确的。它帮助别人。谢谢
猜你喜欢
  • 2018-07-05
  • 2020-03-29
  • 2017-01-28
  • 1970-01-01
  • 2019-06-05
  • 2016-03-13
  • 2016-07-27
  • 2019-04-14
  • 2023-02-17
相关资源
最近更新 更多