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 an ASP.Net ScriptManager and a DropDownList placed inside AJAX UpdatePanel.
The ASP.Net DropDownList has been specified with OnSelectedIndexChanged event handler and AutoPostBack property set to True.
The 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:UpdatePanel ID="UpdatePanel1" runat="server">
        <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:AsyncPostBackTrigger ControlID="ddlFruits" EventName="SelectedIndexChanged" />
Avoid (Prevent) Page refresh (PostBack) after SelectedIndexChanged is fired
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.
protected void OnSelectedIndexChanged(object sender, EventArgs e)
    string message = ddlFruits.SelectedItem.Text + " - " + ddlFruits.SelectedItem.Value;
    ScriptManager.RegisterStartupScript((sender as Control), this.GetType(), "alert", "alert('" + message + "');", true);
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
Avoid (Prevent) Page refresh (PostBack) after SelectedIndexChanged is fired in ASP.Net DropDownList