我有三个下拉列表ddl1,ddl2和ddl3。
现在在选择ddl1的项目时,应该填充ddl2中的相应项目以及类似的ddl3。
例如: - 如果我在ddl1中选择“India”,那么ddl2应显示所有状态,而ddl3应显示所有国家/地区的印度。我希望这样做没有任何数据库连接(只是来自html的静态)。请帮忙!!!。感谢。
答案 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次,你可以这样做,
数据集ds = //从SP获取
将国家/地区数据分配给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();
}
在国家/地区下拉列表的SelectedIndexChanged事件中写入查询以过滤状态信息并绑定到“州”下拉列表
DataRow[] r = table[1].Select("County like '%" + <selected country value> + "%'");
并将过滤后的结果集绑定到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");
}
复制并通过每个国家/地区,这是非常重复但有效。