0

尊敬的用户,

我的应用程序中有两个下拉菜单,分别是 ddlCountry 和 ddlState。我有数据库

tlb国家

身份证(PK) | 国家的名字

状态

身份证(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 更新面板。

4

2 回答 2

1

将您的查询更改为:

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

ddlCountry当请求不是PostBack

    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 回答