2012-09-07 100 views
0
protected void ddlEnvironment_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (ddlEnvironment.SelectedIndex == 0) 
    { 
     ddlServers.Items.Add("item1"); 
    } 

    if (ddlEnvironment.SelectedIndex == 1) 
    { 
     ddlServers.Items.Add("item2"); 
    } 

    if (ddlEnvironment.Text == "Production") 
    { 
    } 
} 

以上不起作用。當我在ddlEnvironment上進行選擇時,它是列表中的第一個項目(索引0),另一個下拉列表未與「item1」疊加。爲什麼?如何基於另一個下拉列表中的選擇來填充下拉列表?

+0

當你調試代碼,什麼是ddlEnvironment.SelectedIndex的價值? –

+0

您是否使用螢火蟲或其他方式進行檢查,如果回調正在服務器中?請參閱網絡。 –

+0

試試這個:http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/CascadingDropDown/CascadingDropDown.aspx - 有趣的AJAX控制工具套件 – bugnuker

回答

2

默認下拉列表可能有不同的原因不做回發。 !

  • 檢查,如果你有AutoPostBack="true"
  • 您綁定ddlEnvironment在Page.IsPostBack塊,使得它保持在回發

    if(!Page.IsPostBack) 
    { 
        ddlEnvironment.AuutoPostBack = true; 
        ddlEnvironment.DataSource = datasource; 
        ddlEnvironment.DataBind(); 
    } 
    
+0

正是這樣。它解決了這個問題。謝謝! :) ps。 9分鐘,直到我可以接受它 – Testifier

+0

不客氣。 – Adil

0

它的狀態我假設你有AutoPostBack=true - 右?

如果您正在初始化Page_Load()事件處理程序中的ddlEnvironment,它將在回發時重置。

你需要做這樣的事情:

If (!Page.IsPostback) 
{ 
    // initialize ddlEnvironment here 
} 
相關問題