如何在Asp.Net C#中填充依赖下拉列表

本文关键字:填充 依赖 下拉列表 Net Asp | 更新日期: 2023-09-27 17:50:17

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

示例:

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

现在,当选择国家时,根据所选的国家,与该国家相关的States将填充在State下拉列表中。我想通过在Asp.Net中用C#编码语言重新加载整个页面来实现这一点。

我怎样才能达到同样的目的?

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

如何在Asp.Net C#中填充依赖下拉列表

  1. 您可以按照Naresh的指示使用AJAX toolkit CascadingDropDown。或
  2. 使用ajax更新面板,并将所有的Dropdowns都保存在其中。这样整个页面就不会在更改下拉值时加载

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

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();

在表单中添加两个下拉列表,并将其命名为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");
            }
        }
    }
}