2013-03-28 36 views
1

我面临在asp.net,在那里我使用2下拉列表中的一个问题用数据库填充值,如何访问下拉列表这是越来越在asp.net

一个是州和其他城市。

和,我有2代表的 “状态”(STATE_ID(PK),STATE_NAME)和 “城市”(city_id(PK),CITY_NAME,STATE_ID(FK))

我可以填充ddlState(其使用状态表的状态我的下拉列表)

的代码是:

​​

还我可以填充下拉列表城市即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”,这就是为什么它不显示我的任何其他城市的其他state.what可能是我注意到的问题解决方案?

+1

确保它不是由于回传! – Mogli 2013-03-28 09:24:58

+0

要扩展Anands建议:请向我们展示您的'Page_Load'和类似事件。将它们分解为代表您的DropDownList的代码。 – 2013-03-28 09:28:14

回答

2

确保您填写ddlState页面负载的条件不回传,即确保您在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(); 
} 
+0

谢谢你。有效... :) – Girish 2013-03-28 09:40:33