【问题标题】:How to populate dependant dropdowns in Asp.Net C#如何在 Asp.Net C# 中填充相关下拉列表
【发布时间】:2013-01-02 09:55:31
【问题描述】:

我想填充两个下拉列表,根据第一个下拉列表的选择,第二个下拉列表将被填充。

示例:

就像我有两个下拉列表,即 1.ddlCountry2.ddlState

现在选择国家/地区的 country 状态状态与该国家相关的状态将填充在状态下拉列表中。我想通过使用 C# 编码语言在 Asp.Net 中重新加载整个页面来实现这一点。

我怎样才能达到同样的效果?

Dropdownlist 正在通过执行查询从数据库中获取数据。

【问题讨论】:

标签: c# asp.net drop-down-menu


【解决方案1】:
  1. 您可以按照Naresh 的说明使用AJAX toolkit CascadingDropDown。 或者
  2. 使用ajax update panel 并将所有Dropdowns 保留在其中。所以整个页面不会在更改下拉值时加载。

您没有将代码提供给进一步的解决方案。

【讨论】:

    【解决方案2】:
    protected void ddlCountry_SelectedIndexChanged(object sender, EventArgs e)
    {
      FillStateByCountry();
    }
    protected void ddlState_SelectedIndexChanged(object sender, EventArgs e)
    {
      FillLocationByCountryandState();
    }
    
    private void FillStateByCountry()
    {
        DataSet dstFillState;
        int CountryId = Convert.ToInt32(ddlCountry.SelectedValue.ToString());
        dstFillState = Tbl_State.FillDDLState(CountryId);
        ddlState.DataSource = dstFillState;
        ddlState.DataTextField = "State";
        ddlState.DataValueField = "Id";
        ddlState.DataBind();
    }
    

    类似FillLocationByCountryandState();

    【讨论】:

      【解决方案3】:

      在表单中添加两个下拉列表并将其命名为cmbStatescmbCities

      当你从cmbStates(dropwdownlist)中选择州名时,cmbCities(dropdownlist)会根据州名(cmbStates)生成城市

      通过从数据库中获取数据

        private void Form1_Load(object sender, EventArgs e)
          {
              SqlConnection con = new SqlConnection("server=pbs-server;database=p2p;user id=shekar;password=sekhar@1346");
              SqlCommand cmd = new SqlCommand("select states from Country", con);
              DataSet ds = new DataSet();
              SqlDataAdapter da = new SqlDataAdapter(cmd);
              con.Open();
              da.Fill(ds, "Country");
              cmbStates.DataSource = ds.Tables[0];
              cmbStates.SelectedValue = 0;
              con.Close();
      
          }
      
          private void cmbStates_SelectedIndexChanged(object sender, EventArgs e)
          {
              SqlConnection con = new SqlConnection("server=xxxx;database=xxxx;user id=xxxxr;password=xxxxxx");
              SqlCommand cmd = new SqlCommand("select cities from States where cityname = 'cmbStates.SelectedItem.ToString()'", con);
              DataSet ds = new DataSet();
              SqlDataAdapter da = new SqlDataAdapter(cmd);
              con.Open();
              da.Fill(ds, "States");
              cmbCities.DataSource = ds.Tables[0];
              cmbCities.SelectedValue = 0;
              con.Close();           
      
          }
      

      手动添加项目

      namespace DropDownlist
      {
          public partial class Form1 : Form
          {
              public Form1()
              {
                  InitializeComponent();
              }
      
              private void Form1_Load(object sender, EventArgs e)
              {
                  cmbStates.Items.Add("Andhra Pradesh");
                  cmbStates.Items.Add("Tamilnadu");
                  cmbStates.Items.Add("Karnataka");
                  cmbStates.SelectedValue = 0;
              }
      
              private void cmbStates_SelectedIndexChanged(object sender, EventArgs e)
              {
      
                  if (cmbStates.SelectedItem.ToString() == "Andhra Pradesh")
                  {
                      cmbCities.Items.Clear();
                      cmbCities.Items.Add("Hyderabad");
                      cmbCities.Items.Add("Guntur");
                      cmbCities.Items.Add("Vijayawada");
                      cmbCities.SelectedValue = 0;
      
                  }
                  else if (cmbStates.SelectedItem.ToString() == "Tamilnadu")
                  {
                      cmbCities.Items.Clear();
                      cmbCities.Items.Add("Chennai");
                      cmbCities.Items.Add("Coimbatore");
                      cmbCities.Items.Add("ooty");
                      cmbCities.SelectedValue = 0;
      
                  }
                  else if (cmbStates.SelectedItem.ToString() == "Karnataka")
                  {
                      cmbCities.Items.Clear();
                      cmbCities.Items.Add("Bangalore");
                      cmbCities.Items.Add("Mangalore");
                      cmbCities.SelectedValue = 0;
      
                  }
                  else
                  {
                      MessageBox.Show("Please Select any value");
                  }
              }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-01
        • 1970-01-01
        • 2020-10-28
        • 1970-01-01
        相关资源
        最近更新 更多