gpt4 book ai didi

typescript - ag-grid cellEditor 选择对象值

转载 作者:搜寻专家 更新时间:2023-10-30 20:42:36 26 4
gpt4 key购买 nike

我想从用户列表中选择:

user.ts

export class User
{
constructor (public id: number, public userName : string){}
}

列定义如下所示:

this.columns = [
{headerName: "Assigned", field:"user.userName",
editable: true ,cellEditor: "select",
cellEditorParams: {values : this.users.map(u=> u.userName)},
]

我希望能够从列表中选择一个用户并在 cellValueChanged 对象中获取。

是否有一个选项,user 将是字段而不是字符串值,并且 user.username 仍将显示在单元格中?

最佳答案

最后,我找到了一个解决方法,让 'select' 使用 keyvalue

var colorsNames = [];
colors.forEach(color=> {
colorsNames.push(color.name);
})
...

{
headerName: "Color",
field: "colorId",
width: 150,
editable: true,
cellEditor: 'select',
cellRenderer: function (data: any) {
var color = colors.find(color => color.id == data.value || color.name == data.value);
// here I've added the check for 'color.id' and 'color.name' because initailly from DB will com the id and afterwards form selectparams will come the name
return color.name;
},
onCellValueChanged: function (data: any) {
/**
* because 'select' does not offer us the possibility to use 'key-value' as traditional,
* we will use only values in 'select' and changed to 'id' when will be saved.
*/
var serviceTypeName = data.data.serviceTypeId;
data.data.serviceTypeId = serviceTypes.find(serviceType => serviceType.name == serviceTypeName).id;
},
cellEditorParams: {
values: colorsNames
}
},

想法是在 select params 中,我们将只提供字符串,我们将尝试根据 name 找到对象的 id .重要的是我们同意 name 是唯一字段。

在设法让它工作之后,我意识到 select 确实是一个非常糟糕的解决方案。无法正常工作,我不建议使用它。

@Yonatan Lilling 如有任何问题,请告诉我。

关于typescript - ag-grid cellEditor 选择对象值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38834414/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com