我有一个实现 IPostBackEventHandler 的自定义控件。一些客户端事件调用 __doPostBack(controlID, eventArgs)。
该控件在两个不同的用户控件中实现。在一个控件中,RaisePostBackEvent 在被调用时在服务器端触发__doPostBack
。在另一个控件中,从不调用 RaisePostBackEvent。我检查了__EVENTTARGET
参数,它确实与控件的 ClientID 匹配......我还能在哪里解决这个问题?
有很多方法可以分崩离析。您是否在后面的代码中动态地将控件添加到页面?如果很多时候您的 UniqueID 可能会关闭 - 即使客户端 ID 相同。您是否有一个代码示例可以演示您在做什么?
仔细检查它确实是 UserControl 类的派生,而不是 WebControl 类。
这一次让我惊讶了很多次。如果您需要使用 WebControl 进行样式设置,则需要让您的控件实现 INamingContainer。(别担心,它是一个标记界面)
所以..
public class MyControl : UserControl {}
或者
public class MyControl : WebControl, INamingContainer {}