【问题标题】:Sitecore SPEAK UI programmatically set selected item of ComboBoxSitecore SPEAK UI 以编程方式设置 ComboBox 的选定项
【发布时间】:2016-03-03 21:58:00
【问题描述】:

如何在 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 应设置为您创建的字段的名称 - 您不能绑定到项目名称。

【问题讨论】:

    标签: javascript sitecore sitecore8 sitecore-speak-ui


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      app.<yourcontrolid>.viewModel.rebind()

      Sitecore SPEAK 组合框文档中记录的功能并且有效。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-05
        • 1970-01-01
        • 2012-06-19
        相关资源
        最近更新 更多