根据第一个下拉列表中的项目选择填充两个下拉列表,而不使用数据库连接

时间:2013-05-16 10:18:44

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

我有三个下拉列表ddl1,ddl2和ddl3。

现在在选择ddl1的项目时,应该填充ddl2中的相应项目以及类似的ddl3。

例如: - 如果我在ddl1中选择“India”,那么ddl2应显示所有状态,而ddl3应显示所有国家/地区的印度。我希望这样做没有任何数据库连接(只是来自html的静态)。请帮忙!!!。感谢。

5 个答案:

答案 0 :(得分:0)

  private SqlConnection conn = your connection string;
    public void Bind_ddlcountry()
    {
        conn.Open();
        SqlCommand cmd = new SqlCommand("select countryid,country from tblcountry", conn);
        SqlDataReader dr = cmd.ExecuteReader();
        ddlcountry.DataSource = dr;
        ddlcountry.Items.Clear();
        ddlcountry.Items.Add("--Please Select country--");
        ddlcountry.DataTextField = "Country";
        ddlcountry.DataValueField = "CountryId";
        ddlcountry.DataBind();
        conn.Close();
    }

//模拟你的州和城市......

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)

        {    Bind_ddlcountry(); }

    }
    protected void ddlcountry_selectedindexchanged(object sender, EventArgs e)
    {
        Bind_ddlstate();
        ddlstate.Focus();
    }
    protected void ddlstate_selectedindexchanged(object sender, EventArgs e)
    {
        Bind_ddlcity();
        ddlcity.Focus();
    }

答案 1 :(得分:0)

如果要从数据库中提取国家/地区数据,则应该同时获取所有州和城市数据。

然后你应该使用dataview过滤数据。因此,只有一个数据库调用可以满足您的需求。

它可能对你有帮助。

答案 2 :(得分:0)

如果你想避免多次访问数据库3次,你可以这样做,

  1. 将数据检索到数据集(可以编写存储过程以返回国家,州和城市等所有信息)
  2. 数据集ds = //从SP获取

    1. 将国家/地区数据分配给Datatable并绑定到国家/地区下拉列表

                     DataTable country=ds.Tables[0];
                     DataTable state=ds.Tables[1];
                     DataTable city=ds.Tables[2];
                     if (countryTab != null)
                     {
                         ddlCountries.DataSource = countryTab;
                         ddlCountries.DataTextField = "country_name";
                         ddlCountries.DataValueField = "country_code";
                         ddlCountries.DataBind();
                     }
      
    2. 在国家/地区下拉列表的SelectedIndexChanged事件中写入查询以过滤状态信息并绑定到“州”下拉列表

       DataRow[] r = table[1].Select("County like '%" + <selected country value> + "%'");
      
    3. 并将过滤后的结果集绑定到State下拉列表。同样的方法也适用于城市下拉。

答案 3 :(得分:0)

我前几天遇到了同样的情况,应该完成一些事情,例如在页面加载时填充列表中的所有数据,然后通过jquery和ajax过滤列表并动态地将它们绑定到下拉列表。我试过但没有成功。所以我使用了Ajaxtoolkit的级联下拉列表。

答案 4 :(得分:0)

因为您没有链接到数据库,所以最好使用IfElse语句。

的内容
if (dropdownlist1.selectedValue == "India")
{
    dropdownlist2.items.clear();
    dropdownlist2.items.add("CityName");
    dropdownlist2.items.add("CityName");
    dropdownlist2.items.add("CityName");
    dropdownlist2.items.add("CityName");
    dropdownlist2.items.add("CityName");
    dropdownlist2.items.add("CityName");
    dropdownlist2.items.add("CityName");
}

复制并通过每个国家/地区,这是非常重复但有效。