angular8 - 在 ag 网格下拉列表中,如何在选择后显示名称并在保存集值而不是名称上显示。?
问题描述
使用这个 参考,我工作过 ag grid 下拉菜单。
问题:一旦我选择了一个下拉值,getvalue() 就会返回值而不是名称。因此它显示列上的数字,它应该是文本。
如果我将其更改为 name,则在保存时,它会绑定到 name 。但在这里它应该是有价值的。
必需:getValue 应返回名称并保存数组应包含值。
agInit(params: any): void {
this.params = params;
this.value = this.params.value;
this.name = this.params.name;
this.options = params.options;
}
getValue(): any {
return this.value;
}
ngAfterViewInit() {
window.setTimeout(() => {
this.input.element.nativeElement.focus();
})
}
stackbltiz 在 这里
我怎样才能做到这一点。
解决方案
您不必为它创建新cellRenderer
的cellEditor
,ag-grid 为其提供了内置select
功能。**
当您objects
在单个内部使用 (for dropdown\combobox) cell
- 您必须实现值处理程序:valueParser
和valueFormatter
:
值解析器:在网格中编辑单元格后,您有机会在将值插入数据之前对其进行解析。这是使用值解析器完成的。
colDef.valueParser = (params) => {
return this.lookupKey(mapping, params.newValue);
}
值格式化程序:值格式化程序允许您格式化值以进行显示。当数据是一种类型(例如数字)但需要转换以供人类阅读(例如输入货币符号和数字格式)时,这很有用。
colDef.valueFormatter = (params) => {
return this.lookupValue(mapping, params.newValue);
}
* wheremapping
代表您的对象,并且在每个函数中您只是提取键或值。
原始解决方案:
lookupValue(mappings, key) {
return mappings[key];
}
lookupKey(mappings, name) {
var keys = Object.keys(mappings);
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
if (mappings[key] === name) {
return key;
}
}
}
在这里我做了一点修改:
lookupValue(mappings, key:string) {
if(!mappings || !mappings.find(item => item.Id == key)) return null;
else
return mappings.find(item => item.Id == key).Value;
}
lookupKey(mappings, name) {
let key: any;
for (key in mappings) {
if (mappings.hasOwnProperty(key)) {
if (name === mappings[key]) {
return key.Id;
}
}
}
}
更新
要填充下拉列表,您需要使用cellEditorParams
:
colDef.cellEditor = 'selectCellEditor';
colDef.cellEditorParams = {
values: yourList,
},
**但是,如果需要,您仍然需要同时拥有渲染器和存储object
,然后您就可以选择在每个阶段显示的内容。
推荐阅读
- ruby-on-rails - 使用自定义选择值手动初始化 ActiveRecord 对象
- html - css flexbox 对齐内容
- javascript - 我想使用 javascript 从 UL 列表中删除列表项
- python - scipy.optimize.minimize 只返回 initial_guess x0
- mysql - 没有条目时 MySQL count(*) 必须返回 0
- ios - 串行队列中的异步错误
- android - 带有 Firebase 查询的 Android Studio
- python - 自定义 Tqdm ThreadPoolExecutor
- validation - 如何验证 FLASK WTFORMS 中的布尔字段
- python-3.x - Python:如何将数据写入已打开的 excel 文件(未指定路径)?