2010-02-21 25 views
1

我忘了提及這個asp.net 2.0。DropDownList_OnSelectedIndexChanged事件,在用戶控件不發射回發

用戶控件具有唯一的ID,並且它被加載到PageLoad事件中。 用戶控件加載到面板中,面板位於Web部件內部。 該下拉列表將autopostback設置爲true。

EnableViewState = true在下拉列表中。 ListItems是在下拉預渲染事件方法中創建的。

這就是爲什麼我不明白爲什麼它不會觸發,下拉是導致此用戶控件回發的唯一原因。

下拉的事件方法應該發生,因爲用戶控件在頁面加載方法中加載時在回發上再次正確?

回答

2

確保沒有正在重新綁定下拉列表的數據源的OnLoad或PageLoad事件。將數據重新綁定到一組新數據可能會導致clickhandler無法執行。

請確保您有if (!Page.IsPostBack)周圍dropdownlist.datasource =dropdownlist.databind()

+0

Nope創建列表項的唯一位置是PreRender方法中的下拉列表。沒有使用數據綁定,我只是在PreRender方法中創建新的列表項。 – OutOFTouch 2010-02-21 23:57:49

+0

這裏的關鍵不是在PostBack上添加新項目或重新綁定。 – Bryan 2010-02-22 00:00:04

+0

我得到這個重新添加項目會消滅事件,如果在頁面處理的錯誤點完成,我認爲下拉的onSelectedChangedEvent會觸發,因爲項目是在下拉預渲染中添加的,但下拉是用戶控件和用戶控件加載在頁面加載會有所作爲? – OutOFTouch 2010-02-22 03:11:04

1

我不確定這是否是您的問題,但它是最常見的。

的EnableViewState集嘗試 真正爲DropDownList

如果ViewState設置爲false,上回發的selected Index變回默認通常是第一項。第一項,如果選擇,不會導致SelectedIndexChange事件觸發

+0

是的,我已經有這樣的設置爲true。 – OutOFTouch 2010-02-21 03:25:38