【发布时间】:2023-03-18 21:50:01
【问题描述】:
我有一个使用外部表单进行编辑/添加的网格。我以this 为例。该表单有一个下拉列表。 [data] 来自具有text 和value 的对象列表。
这两件事我都试过了,但都失败了:
- 设置下拉列表的默认值。我设法做的就是在下拉列表中插入一个重复的行,这确实被选中了,但它也出现了两次。我在执行此操作时查看了this 示例。对象列表的第二个示例。
- 在网格中添加新行时,请在模型本身上设置默认值(对于相同的下拉菜单)。结果是为下拉菜单设置的值被完全忽略。
有人可以给我一个例子吗?谢谢。
我尝试的第一件事的代码:
public arrayOfObjects:Array<SomeClass> = [
SomeClass.staticList.object1,
SomeClass.staticList.object2,
SomeClass.staticList.object3,
SomeClass.staticList.object4
];
defaultObject:SomeClass = SomeClass.staticList.object2 //I want the second as default.
模板中的下拉菜单使用这些:
<kendo-dropdownlist formControlName='theObject'
[data]="arrayOfObjects"
[textField]="'text'"
[valueField]="'value'"
[valuePrimitive]="false"
[defaultItem]='defaultObject'
[(ngModel)]="theObject" >
下拉内容:
- 对象2
- 对象1
- object2(两次是)
- 对象3
- 对象4
我尝试过的第二件事的代码:
public addHandler() {
var newRow = new RowModel();
newReport.theObject = SomeClass.staticList.object2;
this.editDataItem = newRow;
this.isNew = true;
}
在这种情况下什么都不会发生。下拉菜单仍然为空。
解决方案
问题是我没有用于 ngModel 的单独变量。出于某种原因,我认为如果我为 ngModel 指定 FormControl 的名称,它将神奇地起作用。它没有。所以我只是创建了一个单独的变量来保存当前选择的值并且它可以工作。谢谢。
【问题讨论】:
-
您能否在plnkr.co 提供您的代码的复制品?这样可以更轻松地为您提供帮助