0

尊敬するユーザーの皆様

アプリケーションには、ddlCountry と ddlState の 2 つのドロップダウンがあります。私はデータベースを持っています

tlb国名

ID(PK) | 国の名前

tlb状態

ID(PK) | 国名 | 状態名

ページの読み込み時に、ddlCountry ドロップダウンのすべての項目を次のように読み込みました

sqldataadapter da=new sqldataadapter("select countryName from tlbCountry",con);
dataset ds=new dataset();
da.fill(ds);
for(int i=0;i<ds.tables[0].rows.count;i++)
ddlCountry.items.add(ds.Tables[0].Rows[i][0].toString());

ページが読み込まれると、これまでは正常に機能します。ただし、ddlCountry の Textchange または選択変更イベントが発生すると、次のように tlbStates テーブルから対応する状態の値を取得しようとします。それはうまくいきません、私は次のようにそれをしました、

sqldataadapter da=new sqldataadapter("select stateName from tlbState where countryName like '"+ddlCountry.selectedItem.toString()+"'",con);
dataset ds=new dataset();
da.fill(ds);
for(int i=0;i<ds.tables[0].rows.count;i++)
ddlState.items.add(ds.Tables[0].Rows[i][0].toString());

この場合、ddlState ドロップダウンをロードしていません。

ddlCountry の自動ポストバックをオンにすると、ddlState に値がない状態でページが再度リロードされます。何が問題になる可能性がありますか?

注:- AJAX UPDATE PANEL を使用しました。

4

2 に答える 2

1

クエリを次のように変更します。

"select stateName from tlbState where countryName = '" + ddlCountry.Text + "'"

リクエストddlCountryPostBack

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        { 
            //Load Countires
            sqldataadapter da = new sqldataadapter("select countryName from tlbCountry", con);
            dataset ds = new dataset();
            da.fill(ds);
            for (int i = 0; i < ds.tables[0].rows.count; i++)
                ddlCountry.items.add(ds.Tables[0].Rows[i][0].toString());
        }
    }
于 2013-02-06T05:42:00.680 に答える
0

それがあなたを助けることを願っています。

if (!IsPostBack)
{ 
  //here bind country drop down on page load event.
}

次に、ddlCountry バインド状態ドロップダウンの選択変更イベントで

于 2013-02-06T05:51:13.860 に答える