2012-10-05 44 views
1

我想动态设置剑道组合框的值,而是试图像时:剑道combobox.value(x)的工作不正常

var lvl1 = $("#level1Id").data("kendoComboBox");       
var lvl2 = $("#level2Id").data("kendoComboBox"); 

var l2value = lvl2.value(); // save value for later use 
... // do something that includes changing lvl2.value 
lvl2.value(l2value.toString()); // set lvl2.value back to previous 

组合框的值设置为“代码”字段 - 例如 - 2,而不是“值/文本”字段 - “相应的l2值代码”。我明白,值(x)需要字符串参数,所以我尝试了不同的转换方法(int-> string),但没有运气。我在这里错过了什么吗?动态设置这个组合框的值对我来说是非常重要的,所以我们将不胜感激。

编辑:我第二次设置值之前更改组合框。这可能是这里的原因吗?

回答

2

看看这个小提琴:http://jsfiddle.net/pvanhouten/qb8rD/1/。我试图展示如何获得当前选定的文本(苹果)和选定的值(1)。您还可以在文本输入中键入一个值以设置组合框的选定值。如果您输入apple,它将从组合框中选择apple条目。如果您键入的内容不在组合框列表中,它会将组合框的值设置为该值,并且当前所选项目的ID和文本都将是您输入的值。这是否有帮助在所有?

+0

谢谢,我几天前发现,我试图设置combobox值不在选项列表中。愚蠢的错误,但很难注意到。所以你的猜测是对的。 – andree

0

如果启用了服务器筛选和服务器分页,pvanhouten提供的解决方案将不起作用。如果设置的值不在第一页(例如,页面大小为10,并且设置值将只在第二页中) 。唯一的解决方法是手动构造过滤器并调用filter()方法传递此过滤器配置,以便客户端调用服务器来获取过滤的数据,然后调用combobox.select(0)以显示返回的项目。