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」で更新されません。なんで?

4

2 に答える 2

2

デフォルトのドロップダウンリストでは、ポストバックを行わないというさまざまな理由が考えられます。

  • あなたが持っているかどうかを確認してくださいAutoPostBack="true"
  • !Page.IsPostBack ブロックで ddlEnvironment をバインドして、ポストバック時に状態を維持できるようにします。

    if(!Page.IsPostBack)
    {
       ddlEnvironment.AuutoPostBack = true;
       ddlEnvironment.DataSource = datasource; 
       ddlEnvironment.DataBind();
    }
    
于 2012-09-07T16:22:00.500 に答える
0

私はあなたが持っていると思いますAutoPostBack=true-そうですか?

Page_Load() イベント ハンドラーで ddlEnvironment を初期化している場合は、ポストバック時にリセットされています。

次のようなことをする必要があります:

If (!Page.IsPostback)
{ 
    // initialize ddlEnvironment here 
}
于 2012-09-07T16:24:49.300 に答える