2012-10-05 49 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)以顯示返回的項目。