动态下拉列表控件不会触发Selectedindexchanged事件

时间:2011-09-21 11:51:52

标签: asp.net events drop-down-menu selectedindexchanged

我需要触发动态创建的下拉列表的Selectedindexchanged事件。 我在aspx页面中没有代码。所有代码都在代码隐藏中。

DropDownList objdropDown = new DropDownList();
objdropDown.EnableViewState = true;
objdropDown.AutoPostBack = true;                                
//objdropDown.AutoPostBack = true;
//objdropDown.SelectedIndexChanged += new EventHandler(objdropDown_SelectedIndexChanged);

protected void objdropDown_SelectedIndexChanged(object sender, EventArgs e)
{
    //My code here
}

选择随机项drom Dropdownlist后,它会回发,但下拉控件不可见。我在这做错了什么?代码会有所帮助。谢谢!

4 个答案:

答案 0 :(得分:2)

因为代码是在其后面的代码中生成的,所以在回发之间不会持久化,除非您每次都显式地重新创建它(可能在Page_Load中)。 但是,您可能必须跟踪您选择的项目,并在回发后每次重新生成后将其设置为选中。

答案 1 :(得分:2)

您需要创建下拉列表&在pageInit中提前绑定事件。然后将意识到能够参与回发过程&为selectedindexchange举起活动。

PageLoad迟到,因为已经发生了回发处理。看看这个:http://msdn.microsoft.com/en-us/library/ms178472.aspx

答案 2 :(得分:0)

您是否将新创建的DropDownList添加到页面上的父容器并将其可见性设置为可见?

答案 3 :(得分:0)

我遇到与此相同的问题,只是想与其他人分享我的决议。请确保

  • 下拉控件ID在所有帖子后面都是相同的(更好地将其设置为安全方面)
  • 在page_Init事件中创建动态下拉列表。

我的问题与回发后更改动态控件ID有关。在确保所有帖子后面的控件ID相同后,我的问题得以解决。