如何根据另一个下拉列表中的选项填充下拉列表?

时间:2012-09-07 16:18:57

标签: c# asp.net drop-down-menu

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”进行上传。为什么呢?

2 个答案:

答案 0 :(得分:2)

默认下拉列表可能有不同的原因不做回发。

  • 检查您是否有AutoPostBack="true"
  • 绑定!Page.IsPostBack块中的ddlEnvironment,使其在回发时保持其状态

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

答案 1 :(得分:0)

我假设您有AutoPostBack=true - 对吗?

如果您在Page_Load()事件处理程序中初始化ddlEnvironment,则会在回发时重置它。

你需要做这样的事情:

If (!Page.IsPostback)
{ 
    // initialize ddlEnvironment here 
}