ASP.NET DropDownList OnSelectedIndexChanged event not fired
12,451
If you want to avoid to send the whole viewstate to the server, you should look at callbacks.
Instead, if you want to avoid a refresh of the entire page, but with postback, this should work:
<asp:DropDownList ID="ddl1" runat="server" OnSelectedIndexChanged="update1" AutoPostBack="True" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:AsyncPostbackTrigger ControlID="ddl1" EventName="SelectedIndexChanged" />
</Triggers>
<ContentTemplate>
<asp:TextBox runat="server" ID="txt1" />
</ContentTemplate>
</asp:UpdatePanel>
Comments
-
Jamie Taylor almost 2 years
I'm trying to use some AJAX and ASP.Net together to enable me to run functions without having to refresh the whole page but i've stumbled across a problem in doing this
Here's my code
<asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:DropDownList ID="ddl1" runat="server" OnSelectedIndexChanged="update1" /> <asp:TextBox runat="server" ID="txt1" /> </ContentTemplate> </asp:UpdatePanel>
And here's my code behind
Sub update1(ByVal sender As Object, ByVal e As EventArgs) txt1.Text = Now.ToString End Sub
The event doesn't fire because I don't have
AutoPostBack="True"
on my ddl but adding that to the ddl will postback the whole page.Is there a way to avoid using
AutoPostBack="True"
so that it only updates the panel?I know I can use an
asp:Button
to get around this but i'd really like to be able to use a ddl withOnSelectedIndexChanged
Thanks
-
granadaCoder about 11 yearsAutoPostBack="True". Thanks. I hate using UpdatePanels (I prefer JQuery) so I feel like I'm going back in time. But this is what I needed today. Upvote.
-
samuelesque over 9 yearsWhy this answer isn't given everywhere else with a similar question has been asked is completely beyond me. Exactly what I was looking for. Thanks.
-
Adnan Abdollah Zaki over 8 yearsplease comment it or improve it