Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 动态创建下拉列表并相应地触发事件_C#_Asp.net - Fatal编程技术网

C# 动态创建下拉列表并相应地触发事件

C# 动态创建下拉列表并相应地触发事件,c#,asp.net,C#,Asp.net,我有一个简单的任务。第一个Dropdownlist控件位于加载国家名称的位置。选择国家名称后,将动态加载相应的状态的Dropdownlist,选择状态后,将动态添加另一个带有相关地区的Dropdownlist。问题是没有触发动态选择的索引事件。我找了这么多页,但没有找到合适的答案。任何人都可以回答它的书面代码 这段代码在静态控件中运行良好。但不是动态控件。 有人能纠正我的代码吗 namespace fireProgram { public partial class MindforeS

我有一个简单的任务。第一个Dropdownlist控件位于加载国家名称的位置。选择国家名称后,将动态加载相应的状态的Dropdownlist,选择状态后,将动态添加另一个带有相关地区的Dropdownlist。问题是没有触发动态选择的索引事件。我找了这么多页,但没有找到合适的答案。任何人都可以回答它的书面代码

这段代码在静态控件中运行良好。但不是动态控件。 有人能纠正我的代码吗

namespace fireProgram
 {
    public partial class MindforeSystemTestingProgram : System.Web.UI.Page
    {
      BALayer objBALayer = new BALayer();
      DropDownList ddlState=new DropDownList();
      DropDownList ddlDistrict=new DropDownList();
    protected void Page_Init(EventArgs e)
    {
        ddlState.ID = "ddlState";
        ddlState.AutoPostBack = true;
        ddlState.SelectedIndexChanged += new EventHandler(ddlState_SelectedIndexChanged);
        panel1.Controls.AddAt(2, ddlState);


        ddlDistrict.ID = "ddlDistrict";
        panel1.Controls.AddAt(3, ddlDistrict);      
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            ddlCountry.DataSource = objBALayer.GetCountry();
            ddlCountry.DataTextField = "Text";
            ddlCountry.DataValueField = "Value";
            ddlCountry.DataBind();
        }
        //else
        //{              
        //    ddlState.ID = "ddlState";
        //    ddlState.AutoPostBack = true;
        //    ddlState.SelectedIndexChanged += new EventHandler(ddlState_SelectedIndexChanged);
        //    panel1.Controls.AddAt(2, ddlState);


        //    //ddlDistrict.ID = "ddlDistrict";
        //    //panel1.Controls.AddAt(3, ddlDistrict);
        //}
    }

    protected void ddlCountry_SelectedIndexChanged(object sender, EventArgs e)
    {            
        int value = Convert.ToInt32(ddlCountry.SelectedValue);           
        panel1.Controls.AddAt(2, ddlState);
        //DropDownList ddlState = new DropDownList();                               
        //ddlState.AutoPostBack = true;
        if (value != 0)
        {
            ddlState.DataSource = objBALayer.GetState(value);
            ddlState.DataTextField = "Text";
            ddlState.DataValueField = "Value";
            ddlState.DataBind();
        }                      
    }   
    protected void ddlState_SelectedIndexChanged(object sender, EventArgs e)
    {
        int value = Convert.ToInt32(ddlState.SelectedValue);           
        //DropDownList ddlDistrict = new DropDownList()
        panel1.Controls.AddAt(3, ddlDistrict);
        if (value != 0)
        {
            ddlDistrict.DataSource = objBALayer.GetDistrict(value);
            ddlDistrict.DataTextField = "Text";
            ddlDistrict.DataValueField = "Value";
            ddlDistrict.DataBind();
        }
    }
}

}

在将控件添加到面板后,我会尝试设置SelectedIndexChanged处理程序。我必须承认,这是一个真正的盲点。如果这不成功,我会尝试将_AddAt_s与_Add_s交换,看看会发生什么