2016-03-03 189 views
4

我应该如何在Sitecore SPEAK UI中设置ComboBox组件的选定项目?Sitecore SPEAK UI以编程方式设置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

initialize方法,使用下面的代码来设置值:

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

上述办法并没有为我工作,所以我使用的

app.<yourcontrolid>.viewModel.rebind()

功能如Sitecore SPEAK组合框文档中记录的那样工作。

相关问题