In this article I will explain with an example, how to avoid (Prevent) Page refresh (reload) after SelectedIndexChanged is fired in
ASP.Net DropDownList using C# and VB.Net.
The only possible way is to place the
DropDownList inside
ASP.Net AJAX UpdatePanel so that, instead of Full PostBack which causes Page refresh (reload), a Partial PostBack will occur.
HTML Markup
The
HTML Markup consists of following controls:
ScriptManager – For enabling
AJAX.
UpdatePanel – For refreshing control.
DropDownList – For selecting Fruits.
The
DropDownList specified with
OnSelectedIndexChanged event handler and
AutoPostBack property set to
True.
Then
AsyncPostBackTrigger is specified in the
AJAX UpdatePanel in order to fire the
SelectedIndexChanged event of the
DropDownList using Partial
PostBack.
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:DropDownList ID="ddlFruits" runat="server" AutoPostBack="true" OnSelectedIndexChanged="OnSelectedIndexChanged">
<asp:ListItem Text="Mango" Value="1" />
<asp:ListItem Text="Apple" Value="2" />
<asp:ListItem Text="Banana" Value="3" />
<asp:ListItem Text="Guava" Value="4" />
<asp:ListItem Text="Orange" Value="5" />
</asp:DropDownList>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddlFruits" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
The SelectedIndexChanged event of ASP.Net DropDownList
When an
item is changed in
ASP.Net DropDownList, the following
OnSelectedIndexChanged event handler is executed.
Inside the event handler, the selected
Text and
Value of the
DropDownList Selected Item is fetched and displayed using
JavaScript Alert message box.
C#
protected void OnSelectedIndexChanged (object sender, EventArgs e)
{
string message = ddlFruits.SelectedItem.Text + " - " + ddlFruits.SelectedItem.Value;
ScriptManager.RegisterStartupScript((senderas Control), this.GetType(), "alert", "alert('" + message + "');", true);
}
VB.Net
Protected Sub OnSelectedIndexChanged (sender As Object, e As EventArgs)
Dim message As String = ddlFruits.SelectedItem.Text & " - " & ddlFruits.SelectedItem.Value
ScriptManager.RegisterStartupScript(CType(sender, Control), Me.GetType(), "alert", "alert('" & message & "');", True)
End Sub
Screenshot
Demo
Downloads