Mam obiekt DropDownList na mojej stronie internetowej. Kiedy klikam na niego i wybieram inną wartość, nic się nie dzieje, mimo że mam funkcję podłączoną do SelectedIndexChanged
zdarzenia.
Po pierwsze, kod HTML rzeczywistego obiektu:
<asp:DropDownList ID="logList" runat="server"
onselectedindexchanged="itemSelected">
</asp:DropDownList>
I to jest ta funkcja itemSelected
:
protected void itemSelected(object sender, EventArgs e)
{
Response.Write("Getting clicked; " + sender.GetType().ToString());
FileInfo selectedfile;
Response.Write("<script>alert('Hello')</script>");
foreach (FileInfo file in logs)
{
if (file.Name == logList.Items[logList.SelectedIndex].Text)
{
Response.Write("<script>alert('Hello')</script>");
}
}
}
Brak odpowiedzi, a ta część JavaScript nigdy nie jest uruchamiana. Próbowałem tego w najnowszej wersji Firefoksa 3.6, a także w Internet Explorerze 8. Jest on obsługiwany z komputera z systemem Windows Server 2003 R2, na którym działa ASP.NET z .NET Framework w wersji 4.
spróbuj ustawić
AutoPostBack="True"
na DropDownList.źródło
Wiem, że jest to nieco starszy post, ale nadal chciałbym dodać coś do powyższych odpowiedzi.
Może wystąpić sytuacja, w której „ wartość ” więcej niż jednego elementu na liście rozwijanej jest zduplikowana / taka sama. Upewnij się więc, że nie masz powtarzających się wartości w elementach listy, aby wywołać to zdarzenie „ onselectedindexchanged ”
źródło
Dodaj właściwość
ViewStateMode="Enabled"
iEnableViewState="true"
IAutoPostBack="true"
w spadku DropDownListźródło
Upewnij się także, że strona jest poprawna. Możesz to sprawdzić w narzędziach programistycznych przeglądarek (F12)
Na karcie Konsola wybierz prawidłowy obiekt docelowy / ramkę i sprawdź właściwość [Page_IsValid]
Jeśli strona jest nieprawidłowa, formularz nie zostanie przesłany, a zatem nie uruchomi wydarzenia.
źródło
Dla mnie odpowiedzią był atrybut strony aspx, dodałem Async = "true" do atrybutów strony i to rozwiązało mój problem.
To jest struktura mojego panelu aktualizacji
źródło
Zamiast tego, co napisałeś, możesz napisać go bezpośrednio w zdarzeniu SelectedIndexChanged kontrolki listy rozwijanej, np.
źródło