【问题标题】:RaisePostBackEvent not firingRaisePostBackEvent 未触发
【发布时间】:2010-09-05 18:52:00
【问题描述】:

我有一个实现 IPostBackEventHandler 的自定义控件。一些客户端事件调用 __doPostBack(controlID, eventArgs)。

该控件在两个不同的用户控件中实现。在一个控件中,当调用 __doPostBack 时,在服务器端触发 RaisePostBackEvent。在另一个控件中,从不调用 RaisePostBackEvent。我检查了 __EVENTTARGET 参数,它确实与控件的 ClientID 匹配...我还能在哪里解决这个问题?

【问题讨论】:

    标签: asp.net postback


    【解决方案1】:

    仔细检查它确实是 UserControl 类的派生,而不是 WebControl 类。
    这一次让我惊讶了很多次。如果您需要使用 WebControl 进行样式设置,则需要让您的控件实现 INamingContainer。 (别担心,它是一个标记界面)

    所以..

    public class MyControl : UserControl {}
    

    或者

    public class MyControl : WebControl, INamingContainer {}
    

    【讨论】:

      【解决方案2】:

      这可能会以多种方式分崩离析。您是否在后面的代码中动态地将控件添加到页面?如果很多时候您的 UniqueID 可能会关闭 - 即使客户端 ID 相同。您是否有代码示例可以演示您在做什么?

      【讨论】:

      • (移至评论) - 嗯,我觉得有点愚蠢......这是一个简单的问题 - 我认为控件的 UniqueID 匹配 __EVENTARGS 但由于我的一些 JavaScript 愚蠢,它有一个 $ 应该是下划线的地方。这是一个非常长的 UniqueID,很容易被忽略。
      猜你喜欢
      • 1970-01-01
      • 2012-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多