Sitecore SPEAK UI以编程方式设置ComboBox的选定项

时间:2016-03-03 21:58:01

标签: javascript sitecore sitecore8 sitecore-speak-ui

如何在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没有在渲染属性中设置DisplayFieldNameValueFieldName值,则必须将值设置为相应的itemId。 DisplayFieldName和/或ValueFieldName应设置为您创建的字段的名称 - 您无法绑定到项目名称。

2 个答案:

答案 0 :(得分:2)

initialize方法中,使用以下代码设置值:

app.yourQueryDataSource.on("change:hasItems", function () {
    app.yourComboBox.set("selectedValue", yourValue); 
});

答案 1 :(得分:0)

上述方法对我不起作用,因此我使用了

app.<yourcontrolid>.viewModel.rebind()

功能如Sitecore SPEAK组合框文档中所述,并且有效。