2013-05-20 11 views
5

Po utworzeniu KendoDropDownList początkowy indeks jest ustawiony na -1, a tekst jest pusty.Jak zresetować wybrany indeks KendoDropDownList do -1 (nic nie wybrano)

IE: $("#txtQPLPickupFrom").data("kendoDropDownList").select() zwróci -1.

Po dokonaniu wyboru, select() zwraca wybrany indeks (0,1,2,3 ...).

Moje pytanie brzmi: chcę przywrócić wybrany indeks z powrotem do -1, gdy wyświetlam nowy wpis rekordu, w którym użytkownik nie wybrał wartości. Próba użycia .select(-1) wydaje się nie działać. Tak więc istnieje sposób przywrócenia początkowej selekcji do zera (-1) po tym, jak już ma wartość.

+0

Czy masz przykład tego? Prezentacje Kendo UI wydają się mieć indeks 0 dla braku wyboru, chyba że brak danych. – Guvante

+0

W mojej aplikacji pozycje na liście rozwijanej są dynamiczne, na podstawie wyświetlanego rekordu. Tak więc przy pierwszym tworzeniu źródło danych jest ustawione na puste źródło danych, IE: new kendo.data.DataSource(). Następnie, gdy wyświetlam rekord, ładuję źródło danych (przez wywołanie AJAX). Dlatego początkowo wybrany indeks to -1. – George

Odpowiedz

0

Lista rozwijana kendo zawsze będzie domyślnie zawierała pierwszy element w swoim źródle danych. Możesz skonfigurować rozwijanie, aby użyć optionLabel: ' ' (spacja), co spowoduje, że wybrana wartość początkowa nie będzie zawierała żadnego tekstu.

Następnie można zresetować wybór do tej wartości za pomocą .select(0).

+0

Nie, tym, czego naprawdę chcę, jest zresetowanie kontrolki do stanu początkowego, aby funkcja .select() zwróciła -1, a tekst będzie pusty. – George

+0

Nie wiem, jak to zrobić, może z wyjątkiem ustawienia źródła danych, aby ponownie opróżnić. Co próbujesz zrobić .select() = 0 i "" to za mało? –

+0

Wybierz (0), wybiera pozycję (1.). Kiedy wyświetlam rekord, w którym ta wartość nigdy nie została wybrana, nie chcę niczego wybierać. (i tworzenie pierwszego wpisu jako wpisu "nic nie wybrano" nie jest tym, czego chcę). Rodzaj różnicy między 0 i wartością null. – George

3

To wydaje się działać: (muszę zrobić więcej testów)

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

+1 To jest czyste i działa dobrze. Dzięki! –

+0

Aby uzyskać również zmianę zdarzenia, znalazłem więcej właściwości, które wyglądały interesująco. _OldIndex wydawał się być tym, który nie dopuszczał do żadnych zdarzeń, więc aby go w pełni uruchomić: var dropdownlist = $ ("# HolidayDropDownList") .danych ("kendoDropDownList"); dropdownlist.text (dropdownlist.options.optionLabel); dropdownlist.element.val (-1); dropdownlist.selectedIndex = -1; dropdownlist._oldIndex = 0; –

1

Ten pracował dla mnie:

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

użycie txtQPLPickupFrom.value (-1)

txtQPLPickupFrom.value(-1); 

ten powinien ustawić go opróżnić

Powiązane problemy