【发布时间】:2015-10-08 05:39:52
【问题描述】:
我有如下的州和城市下拉列表(级联):
protected void BindStateDropDown()
{
string CS = ConfigurationManager.ConnectionStrings["SportsActiveConnectionString"].ConnectionString;
using (SqlConnection con = new SqlConnection(CS))
{
con.Open();
SqlCommand cmd = new SqlCommand("select * from tblState", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
ddlState.DataSource = ds;
ddlState.DataTextField = "StateName";
ddlState.DataValueField = "StateId";
ddlState.DataBind();
}
ddlState.Items.Insert(0, new ListItem("---Select---", "0"));
ddlCity.Items.Insert(0, new ListItem("---Select---", "0"));
}
protected void ddlState_SelectedIndexChanged(object sender, EventArgs e)
{
int StatId = Convert.ToInt32(ddlState.SelectedValue);
string CS = ConfigurationManager.ConnectionStrings["SportsActiveConnectionString"].ConnectionString;
using (SqlConnection con = new SqlConnection(CS))
{
con.Open();
SqlCommand cmd = new SqlCommand("spCities", con);
cmd.Parameters.AddWithValue("@StatId", StatId);
cmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
ddlCity.DataSource = ds;
ddlCity.DataTextField = "CityName";
ddlCity.DataValueField = "CityId";
ddlCity.DataBind();
}
ddlCity.Items.Insert(0, new ListItem("---Select---", "0"));
}
我用来向数据库插入值如下:
cmd.Parameters.AddWithValue("@State", ddlState.SelectedItem.Text);
cmd.Parameters.AddWithValue("@City", ddlCity.SelectedItem.Text);
这工作正常并将州和城市插入数据库表中。现在我尝试在编辑页面上显示如下值:
ddlState.SelectedIndex = ddlState.Items.IndexOf(ddlState.Items.FindByText(rdr["State"].ToString()));
ddlCity.SelectedIndex = ddlCity.Items.IndexOf(ddlCity.Items.FindByText(rdr["City"].ToString()));
abpve 代码绑定了州,但没有绑定城市。城市下拉菜单仍然显示---选择---。一旦绑定了城市,我应该能够选择任何其他城市/州并再次更新。 任何帮助将不胜感激
【问题讨论】:
-
能否请您发布绑定组合框的代码
-
请先绑定两个组合框,然后设置选定的索引。
-
对 ddlcity 和 ddlstate 使用不同的数据集
-
你试过用这个
dlState.SelectedValue = rdr["State"].ToString(); -
@Suprabhat - 不,它甚至不绑定状态
标签: c# asp.net sql-server cascadingdropdown