2013-05-20 23 views
5

KendoDropDownList創建它的初始索引設置爲-1,文本爲空。如何重置一個KendoDropDownList選擇指數回-1(選擇任何內容)

IE:$("#txtQPLPickupFrom").data("kendoDropDownList").select()將返回-1。

當作出選擇時,select()返回所選索引(0,1,2,3 ......)。

我的問題是,我想選擇的指標返回到-1,當我顯示在用戶沒有選擇值的新的記錄條目。嘗試使用.select(-1)似乎不起作用。因此,有一種方法可以在初始選擇已有值後將其恢復爲無(-1)。

+0

你有這方面的一個例子嗎?除非沒有數據存在,否則Kendo UI演示似乎顯示沒有選擇的索引爲0。 – Guvante

+0

在我的應用程序中,下拉列表中的項目是動態的,基於正在顯示的記錄。因此,在初始創建時,dataSource被設置爲空數據源,即IE:new kendo.data.DataSource()。然後當我顯示一條記錄時,我加載數據源(通過AJAX調用)。這就是爲什麼最初選擇的索引是-1。 – George

回答

0

劍道下拉菜單會始終默認爲在其數據源中的第一項。您可以將下拉列表配置爲使用optionLabel: ' '(一個空格),這將導致選定的初始值沒有文本。

然後,您可以選擇重置爲.select(0)此值。

+0

不,我真正想要的是將控件重置回初始狀態,以便.select()將返回-1,並且文本將爲空。 – George

+0

我不知道你可以怎麼做,除非可能將數據源設置爲空。你想做什麼.select()= 0和''是不夠的? –

+0

選擇(0),選擇一個條目(第1個)。當我顯示從未選擇過該值的記錄時,我不想選擇任何內容。 (並創建第一個條目作爲'沒有選擇'條目是不是我想要的)。種類0和null之間的區別。 – George

3

這似乎工作:(我必須做更多的測試)

var txtQPLPickupFrom = $("#txtQPLPickupFrom").data("kendoDropDownList"); 
txtQPLPickupFrom.text(txtQPLPickupFrom.options.optionLabel); 
txtQPLPickupFrom.element.val(""); 
txtQPLPickupFrom.selectedIndex = -1; 
+0

+1它很乾淨並且運作良好。謝謝! –

+0

爲了讓變化事件也發生,我確實發現了一些看起來很有趣的屬性。 _OldIndex似乎是防止任何事件發生的原因,因此爲了使其完全正常工作: var dropdownlist = $(「#HolidayDropDownList」)。data(「kendoDropDownList」); dropdownlist.text(dropdownlist.options.optionLabel); dropdownlist.element.val(-1); dropdownlist.selectedIndex = -1; dropdownlist._oldIndex = 0; –

1

這爲我工作:

$("#Actions").data("kendoDropDownList").refresh(); 
0

使用txtQPLPickupFrom.value(-1)

txtQPLPickupFrom.value(-1); 

這應該將它設置爲空

相關問題