2009-05-19 16 views
5

Używam nowego kontrolki Ajax ComboBox Microsoft ASP.NET w mojej aplikacji internetowej i mam problem z ustaleniem, jak programowo ustawić wybrany element listy. Na przykład mam formularz akceptujący adresy i ComboBox do zaakceptowania nazwy miasta. Po wprowadzeniu i zapisaniu przez użytkownika i adres, chciałbym zresetować formularz, w tym ComboBoxes.Combobox ASP.NET AJAX - Nie można programowo zmienić wybranego elementu

Dzięki regularnej kontroli ASP.NET DropdownList mogę zresetować wybrana pozycja jak poniżej:

City.SelectedIndex = -1; 

Kontrola ComboBox ASP.NET AJAX akceptuje tej linii kodu; ale gdy strona zostanie cofnięta, poprzednio wybrana wartość jest nadal zaznaczona. Pomoc byłaby doceniona.

Aktualizacja: Próbowałem następujących bezskutecznie ...

City.ClearSelection(); 

Odpowiedz

3

Jedno rozwiązanie tego problemu jest stosowanie Po 2 Polecenia Przed załadowaniem strony Drugi raz lub uczynić ją widoczną w aktualizacji Panelu

  Combobox1.ClearSelection() 
      Combobox1.Dispose() 

To skasuje Combobox Value.

Nadzieję, że to pomaga. Zajęło mi trochę czasu, aby go znaleźć.

0

Spróbuj:

ComboBox.Text = ""; 
ComboBox.ClearSelection(); 
+0

Po prostu próbowałem i bez powodzenia. Poprzednio wybrana wartość nadal istnieje. Jedynym rozwiązaniem jest ponowne powiązanie listy, ale staram się uniknąć kolejnego trafienia bazy danych. – jwalkerjr

+0

Czy istnieje zbiór przedmiotów z przejrzystą metodą? ComboBox.Items.Clear()? –

+0

Tak, i to powoduje wyczyszczenie pozycji na liście, ale wybrana wartość STILL wyświetla się w polu. – jwalkerjr

0

Czy odwołując się do CascadingDropdown? Jeśli tak, ustaw SelectedValue opcji CascadingDropDown na wartość null.

CascadingDropDown1.SelectedValue = null; 
+1

Tim, tak naprawdę mówię o nowym sterowaniu ComboBox w MS Ajax Control Toolkit. Niestety, ustawienie właściwości .SelectedValue elementu sterującego na wartość null nadal nie działa. Przekonany w tym momencie jest to błąd w kontroli. Chciałbym, żeby MS to potwierdziło. – jwalkerjr

1

To jest otwarty problem na CodePlex. Tak więc, ponieważ jest to błąd, nie ma rozwiązania, dopóki nie zostanie wydana łatka. Oto kod issue w CodePlex.

1

to praca, gdy używam DropDownStyle = „rozwijanej” i tego polecenia, aby usunąć tekst combobox1.SelectedItem.Text = „”

0

ok, więc jeśli chcesz, aby ustawić wskaźnik jest faktycznie przechowywane w ukrytym pole w sterowaniu wygląda. Więc to, co robię, aby to wyczyścić, jest takie.

foreach (Control control in cbFeatures.Controls) 
      { 
       if (control is HiddenField) 
        ((HiddenField)control).Value = "0"; 
      } 

Działa to doskonale dla mnie, gdy wartość jest indeksem, który chcesz ustawić.

0

Wymień City.ClearSelection() z następujących czynności:

City.Items.Insert(0, ""); 
City.SelectedIndex = 0; 

Teraz będzie to umieścić pusty ciąg w rozwijanej liście części kontroli City, jak również ustawienie tekstu na pusty ciąg znaków. Aby usunąć pusty ciąg z listy rozwijanej używać

City.Items.Remove(""); 

w przypadku Miasto Page_Load.

1

* To nadal jest błąd z wersji 2-18-2011 3.5.40412.2 zestawu narzędzi *

Ze względu na wszystkich użytkowników wyszukiwarki Google, żadna z poprawek znalezionych dla tego problemu nie zadziałała (w tym różne elementy związane z iterowaniem za pomocą kolekcji kontrolek, aby znaleźć ukrytą kontrolę, Pozbyć się, itd.)

* działa to dla mnie nie ma znaczenia ile warstw głęboko mam combobox pochowany w innych paneli sterujących/etc *

combobox.Items.Clear();

((TextBox) cmbMachineNum.FindControl ("TextBox")). Text = "";

+0

Dzięki, @Paul. To doprowadzało mnie do szału przez cały dzień ... :) –

Powiązane problemy