1

私は2つのドロップダウンリストを使用しているasp.netで問題に直面しています。

1 つは州用で、もう 1 つは市用です。

そして、私は2つのテーブル "state"(state_id(pk),state_name) と "city"(city_id(pk),city_name,state_id(fk)) を持っています

状態テーブルを使用して ddlState (状態のドロップダウン リスト) を設定できます

そのためのコードは次のとおりです。

 dt = objGetCity.getState();

 ddlState.DataSource = dt;

 ddlState.DataTextField = dt.Columns["state_name"].ToString();
 ddlState.DataValueField = dt.Columns["state_id"].ToString();
 ddlState.DataBind();

また、都市、つまり ddlCity のドロップダウン リストに入力することもできます (州のドロップダウン リストの変更イベントで)

このコードは次のとおりです。

 protected void ddlState_SelectedIndexChanged(object sender, EventArgs e)
    {
        int state_id = Convert.ToInt32(ddlState.SelectedValue.ToString());

        dt = objGetCity.getcity(state_id);

        ddlCity.Items.Add("Select City");

        ddlCity.Visible = true;

        ddlCity.DataSource = dt;

        ddlCity.DataValueField = dt.Columns["city_id"].ToString();
        ddlCity.DataTextField = dt.Columns["city_name"].ToString();
        ddlCity.DataBind();
    }

今、デバッグ中に気付いた問題は、常に「state_id = 1」であり、それが他の州の他の都市を表示していない理由です。解決策は何ですか?

4

1 に答える 1

2

ページ ロードの ddlState に not postback の条件を設定していることを確認してください。つまり、これを Page_Load イベントに追加したことを確認してください。

if(!Page.IsPostBack)
{

dt = objGetCity.getState();

 ddlState.DataSource = dt;

 ddlState.DataTextField = dt.Columns["state_name"].ToString();
 ddlState.DataValueField = dt.Columns["state_id"].ToString();
 ddlState.DataBind();
}
于 2013-03-28T09:28:46.900 に答える