如何在Sitecore SPEAK UI中设置ComboBox组件的选定项?
我的ComboBox由QueryDataSource组件填充,该组件正在查看核心数据库中项目的文件夹。
我可以使用以下代码检索当前选定的值(即文本,而不是ID):
var value = this.MyComboBoxId.viewModel.selectedItemId();
我希望能够使用以下方式设置所选值:
var value = "SomeValueWhichExistsInTheList";
this.MyComboBoxId.viewModel.selectedItemId(value);
但这似乎不起作用。文档here使用
提及rebind(items, selectedItem, selectedValue, displayFieldName, valueFieldName)
但我不想重新填充它,只需更改所选项目即可。我的代码在我的模型的initialize
方法中。
修改
我发现如果ComboBox没有在渲染属性中设置DisplayFieldName
或ValueFieldName
值,则必须将值设置为相应的itemId。 DisplayFieldName
和/或ValueFieldName
应设置为您创建的字段的名称 - 您无法绑定到项目名称。
答案 0 :(得分:2)
在initialize
方法中,使用以下代码设置值:
app.yourQueryDataSource.on("change:hasItems", function () {
app.yourComboBox.set("selectedValue", yourValue);
});
答案 1 :(得分:0)
上述方法对我不起作用,因此我使用了
app.<yourcontrolid>.viewModel.rebind()
功能如Sitecore SPEAK组合框文档中所述,并且有效。