2008-08-13 104 views
5

我有一個實現IPostBackEventHandler的自定義控件。一些客戶端事件調用__doPostBack(controlID,eventArgs)。RaisePostBackEvent not firing

該控件在兩個不同的用戶控件中實現。在一個控件中,當調用__doPostBack時,RaisePostBackEvent在服務器端被觸發。在另一個控件中,RaisePostBackEvent從不被調用。我檢查了__EVENTTARGET參數,它與控件的ClientID匹配......我可以在哪裏尋找解決這個問題的方法?

回答

1

有很多方法可以分解。您是否在代碼後面動態地將控件添加到頁面?如果這麼多次你的UniqueID可以關閉 - 即使客戶端ID是相等的。你有代碼示例可以證明你在做什麼?

+0

(遷評論) - 嗯,我覺得挺傻的......這是一個簡單的問題 - 我認爲控件的UniqueID與__EVENTARGS相匹配,但由於我的JavaScript有些愚蠢,它有一個$,下劃線應該是。這是一個非常長的UniqueID,很容易忽略。 – 2012-11-19 02:35:36

0

仔細檢查它確實是UserControl類的派生,而不是WebControl的派生類。
這一次讓我感到驚訝很多次。如果您需要使用WebControl進行造型,則需要讓您的控件實現INamingContainer。 (別擔心,它的一個標記接口)

所以..

public class MyControl : UserControl {} 

或者

public class MyControl : WebControl, INamingContainer {}