簡體   English   中英

將值從數據庫插入到下拉列表失敗

[英]Inserting value from database to dropdownlist fails

我有州和城市下拉列表(級聯),如下所示:

 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代碼綁定狀態但不綁定城市.city下拉列表仍顯示--- Select ---。綁定城市后,我應該能夠選擇任何其他城市/州並再次更新。 任何幫助將不勝感激

嘗試這個

ddlState.SelectedIndex = ddlState.Items.IndexOf(ddlState.Items.FindByText(rdr["State"].ToString()));

然后將城市值設置為隱藏值hf_city

hf_city.Value = rdr["City"].ToString();

然后關閉您的閱讀器和連接,然后再次調用在ddlState_SelectedIndexChanged上創建的函數

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

 ddlCity.SelectedIndex = ddlCity.Items.IndexOf(ddlCity.Items.FindByText(hf_city.Value));

創建用於綁定cityDropdownlist的另一種方法:

protected void BindCityDropDown(int StatId)
{
    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"));
}

在dropdownlistselected索引更改內部調用此方法:

protected void ddlState_SelectedIndexChanged(object sender, EventArgs e)
{
    int StatId = Convert.ToInt32(ddlState.SelectedValue);
    BindCityDropdown(StatId);
}

現在在編輯部分綁定citydropdownlist,然后分配值:

ddlState.SelectedIndex = ddlState.Items.IndexOf(ddlState.Items.FindByText(rdr["State"].ToString()));
int StatId = Convert.ToInt32(ddlState.SelectedValue);
BindCityDropdown(StatId);
 ddlCity.SelectedIndex = ddlCity.Items.IndexOf(ddlCity.Items.FindByText(rdr["City"].ToString()));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM