设置下拉列表默认值或使用模型中的值
Set dropdown list default value or use value from model
我有一个网格,它使用外部表单来执行 editing/adding。我用 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 的名称,它将神奇地起作用。它没有。所以我只是创建了一个单独的变量来保存当前选择的值并且它起作用了。谢谢。
DropDown 的 defaultItem
设置用于在没有从列表中选择项目的情况下添加填充符,例如 "Select an item..."。
要完成您想要做的事情,试试这个:
<kendo-dropdownlist
[data]="listItems"
textField="text"
valueField="value"
[(ngModel)]="selectedItem"
>
public listItems = [
{ text: "Option1", value: 1 },
{ text: "Option2", value: 2 },
{ text: "Option3", value: 3 }
];
public selectedItem = this.listItems[1];
我有一个网格,它使用外部表单来执行 editing/adding。我用 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 的名称,它将神奇地起作用。它没有。所以我只是创建了一个单独的变量来保存当前选择的值并且它起作用了。谢谢。
DropDown 的 defaultItem
设置用于在没有从列表中选择项目的情况下添加填充符,例如 "Select an item..."。
要完成您想要做的事情,试试这个:
<kendo-dropdownlist
[data]="listItems"
textField="text"
valueField="value"
[(ngModel)]="selectedItem"
>
public listItems = [
{ text: "Option1", value: 1 },
{ text: "Option2", value: 2 },
{ text: "Option3", value: 3 }
];
public selectedItem = this.listItems[1];