当我们更改kendo ui组合框的数据源时,下拉列表中的所有值都显示未定义的值。我们正在为多选做同样的事情,它工作正常。是否有我们遗漏的东西,或者它只是控制中的一个错误。我们尝试了几个版本,它们都显示了相同的问题。我们的数据源结构可能会发生变化,因此必须更改显示文本和数据值。
//Sample code we are doing when we change the data source.
var combo = $("#fabric").data("kendoComboBox");
combo.setDataSource([
{ text2: "test1", value2: "1" },
{ text2: "test2", value2: "2" }
]);
combo.setOptions({dataTextField: "text2",dataValueField: "value2"});
combo.refresh();
答案 0 :(得分:0)
首先,setOptions
文档告诉我们,此方法的实现因每个小部件而异:
http://docs.telerik.com/kendo-ui/api/javascript/ui/widget#methods-setOptions
因此,基本上setOptions仅支持对窗口小部件配置的一些基本更改(例如" min"," max"对于数字输入),并且每个窗口小部件都有所不同。遗憾的是,无法确定窗口小部件的哪些属性可以修改,哪些属性不可以。
在更改窗口小部件的dataSource(或更改Grid窗口小部件的列等)等主要情况下,我建议重新创建整个窗口小部件。这是唯一可靠的方式,因为幕后可能会发生很多魔法,而我们并不知道。
您需要取消选择该项,以清除输入值。然后销毁小部件,并使用新配置再次挂钩到输入。
$("#get").click(function() {
var combo = $("#fabric").data("kendoComboBox");
combo.select(-1);
combo.destroy();
$("#fabric").kendoComboBox({
dataTextField: "text2",
dataValueField: "value2",
dataSource: [
{ text2: "test1", value2: "1" },
{ text2: "test2", value2: "2" }
]
});
});