2016-03-03 2 views
4

Как установить выделенный элемент компонента ComboBox в Sitecore SPEAK UI?Sitecore SPEAK UI программно устанавливает выбранный элемент ComboBox

My 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 должно быть указано имя созданного вами поля - вы не можете привязываться к имени элемента.

ответ

2

В методе initialize, используйте следующий код для установки значения:

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

выше подход не работает для меня, и поэтому я использовал

app.<yourcontrolid>.viewModel.rebind()

как описано в документации Sitocore SPEAK combobox, и это сработало.

Смежные вопросы