title: How to refresh dropdownlist without reloading the page?
body: <p>I have two dropdownlists in my page:</p>
  
  <pre><code>&lt;asp:DropDownList AutoPostBack="True" OnSelectedIndexChanged="ddlMain_SelectedIndexChanged" ClientIDMode="Static" ID="ddlMain" name="searchPhys" style="width: 365px;" class="default" runat="server" AppendDataBoundItems="true"&gt;
      &lt;asp:ListItem Text="BY PHYSICIAN" Value="0" Selected="True" /&gt;
      &lt;asp:ListItem Text="BY LOCATION" Value="1" /&gt;
      &lt;asp:ListItem Text="BY SPECIALTY" Value="2" /&gt;
  &lt;/asp:DropDownList&gt;
  
  &lt;br /&gt;&lt;br /&gt;
  
  &lt;asp:DropDownList ClientIDMode="Static" ID="ddlDrillDown" name="searchPhys" style="width: 365px;" class="default" runat="server" AppendDataBoundItems="true"&gt;
  &lt;/asp:DropDownList&gt;
  </code></pre>
  
  <p>My code-behind to handle the dropdownlist change is:</p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Web;
  using System.Web.UI;
  using System.Web.UI.WebControls;
  using System.Data.SqlClient;
  using System.Xml.Linq;
  using System.Configuration;
  using System.Windows.Forms;
  using System.Data;
  
  public partial class physicians : System.Web.UI.Page
  {
  
      protected void Page_Load(object sender, EventArgs e) {
  
      if (!Page.IsPostBack) {
          PopulatePhysician();
      }
      //PopulateSpecialty();
      //PopulateLocation();
  
      }
  
      public void PopulatePhysician() {
          SqlCommand cmd = new SqlCommand("getPhysicians", new SqlConnection(ConfigurationManager.AppSettings["ConnString"]));
          //cmd.CommandType = Data.CommandType.StoredProcedure
          cmd.Connection.Open();
  
          SqlDataReader ddlValues = default(SqlDataReader);
          ddlValues = cmd.ExecuteReader();
  
          //if (!IsPostBack) {
              ddlDrillDown.Items.Clear();
              ddlDrillDown.DataSource = ddlValues;
              ddlDrillDown.DataValueField = "content_id";
              ddlDrillDown.DataTextField = "content_title";
              ddlDrillDown.DataBind();
              //set the default value for the drop down
              ListItem Item = new ListItem();
              Item.Text = "Select a Physician's Name";
              Item.Value = "0";
              //Item.Selected = True
              ddlDrillDown.Items.Insert(0, Item);
          //}
      cmd.Connection.Close();
      cmd.Connection.Dispose();
      }
  
      public void PopulateSpecialty() {
          SqlCommand cmd = new SqlCommand("getSpecialties", new SqlConnection(ConfigurationManager.AppSettings["ConnString"]));
          cmd.Connection.Open();
  
          SqlDataReader ddlValues = default(SqlDataReader);
          ddlValues = cmd.ExecuteReader();
  
          //if (!IsPostBack) {
              ddlDrillDown.Items.Clear();
              ddlDrillDown.DataSource = ddlValues;
              ddlDrillDown.DataValueField = "content_id";
              ddlDrillDown.DataTextField = "content_title";
              ddlDrillDown.DataBind();
              //set the default value for the drop down
              ListItem Item = new ListItem();
              Item.Text = "Select a Specialty";
              Item.Value = "0";
              ddlDrillDown.Items.Insert(0, Item);
          //}
          cmd.Connection.Close();
          cmd.Connection.Dispose();
      }
  
      public void PopulateLocation() {
          SqlCommand cmd = new SqlCommand("getLocations", new SqlConnection(ConfigurationManager.AppSettings["ConnString"]));
          cmd.Connection.Open();
  
          SqlDataReader ddlValues = default(SqlDataReader);
          ddlValues = cmd.ExecuteReader();
  
          //if (!IsPostBack) {
              ddlDrillDown.Items.Clear();
              ddlDrillDown.DataSource = ddlValues;
              ddlDrillDown.DataValueField = "content_id";
              ddlDrillDown.DataTextField = "content_title";
              ddlDrillDown.DataBind();
  
              //set the default value for the drop down
              ListItem Item = new ListItem();
              Item.Text = "Select a Location";
              Item.Value = "0";
              ddlDrillDown.Items.Insert(0, Item);
          //}
          cmd.Connection.Close();
          cmd.Connection.Dispose();
      }
  
      public void ddlMain_SelectedIndexChanged(object sender, System.EventArgs e) {
          switch(ddlMain.SelectedIndex) {
              case 0:
                  PopulatePhysician();
                  break;
              case 1:
                  PopulateLocation();
                  break;
              case 2:
                  PopulateSpecialty();
                  break;
          }
      }
  }
  </code></pre>
  
  <p>The feature that I am trying to add to the above is, when the user selects an option from the <code>ddlMain</code> dropdownlist to refresh the <code>ddlDrillDown</code> dropdownlist based on the option without reloading the page.</p>
  
  <p>How can I achieve it?</p>
  
  <p>UPDATE:</p>
  
  <pre><code>&lt;asp:ScriptManager ID="ScriptManager" 
                                 runat="server" /&gt;
              &lt;asp:UpdatePanel ID="UpdatePanel1" 
                               UpdateMode="Conditional"
                               runat="server"&gt;
                  &lt;ContentTemplate&gt;
                      &lt;asp:DropDownList AutoPostBack="True" OnSelectedIndexChanged="ddlMain_SelectedIndexChanged" ClientIDMode="Static" ID="ddlMain" style="width: 365px;" class="default" runat="server" AppendDataBoundItems="true"&gt;
                          &lt;asp:ListItem Text="BY PHYSICIAN" Value="0" Selected="True" /&gt;
                          &lt;asp:ListItem Text="BY LOCATION" Value="1" /&gt;
                          &lt;asp:ListItem Text="BY SPECIALTY" Value="2" /&gt;
                      &lt;/asp:DropDownList&gt;
                      &lt;br /&gt;&lt;br /&gt;
                      &lt;asp:DropDownList ClientIDMode="Static" ID="ddlDrillDown" style="width: 365px;" class="default" runat="server" AppendDataBoundItems="true"&gt;
                      &lt;/asp:DropDownList&gt;
                      &lt;/ContentTemplate&gt;
              &lt;/asp:UpdatePanel&gt;
  </code></pre>