2011-09-21 111 views
1

我需要觸發動態創建的下拉列表的Selectedindexchanged事件。 我在aspx頁面沒有代碼。所有代碼都在代碼隱藏中。動態下拉列表控件不會觸發Selectedindexchanged事件

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後,它回發但下拉控件不可見。我在這裏做錯了什麼?代碼會有幫助。謝謝!

+0

事件處理程序代碼實際上並未在此處評論。我應該在創建控件後立即添加它嗎? – tales

回答

0

您是否將新創建的DropDownList添加到頁面上的父容器並將其可見性設置爲可見?

2

因爲代碼是在後面的代碼中生成的,所以它不會在回發之間持久,除非您每次明確地重新創建它(可能在Page_Load中)。 但是,您可能必須跟蹤您選擇的項目,並將其設置爲在每次回發後重新生成後選中。

2

您需要創建下拉列表&儘早在pageInit中綁定事件。然後它會意識到能夠參與回發流程&引發selectedindexchange事件。

由於回發處理已經發生,PageLoad已經晚了。看看這個:http://msdn.microsoft.com/en-us/library/ms178472.aspx

0

我有同樣的問題,這只是想分享我的決議。請確保

  • 下拉控制ID在所有後背上(更好的設置這是在安全方面)
  • 創建於page_Init事件動態下拉相同。

我的問題是關於動態控制ID後發回來更改。在確保所有回帖中的控件ID相同之後,我的問題得到解決。

相關問題