2010-09-21 105 views
0

我正在构建一个ASP.NET自定义服务器控件。 我已经实现了IPostBackDataHandler和IPostBackEventHandler。 的OnPreRender我已经注册回发逻辑:raisepostbackevent not firing

protected override void OnPreRender(EventArgs e) 
    { 
     base.OnPreRender(e); 

     if (Page != null) 
     { 
      Page.RegisterRequiresRaiseEvent(this); 
      Page.RegisterRequiresPostBack(this); 
     } 
    } 

控制使用的ImageButton(但我还试图用一个简单的按钮);当它被点击时,我可以看到页面“刷新”,并发布了一些数据(我检查了这一点)。 但是,我不知道为什么RaisePostBackEvent(字符串eventArguments)没有触发。

有谁知道发生了什么事?有人能指出我解决这个问题的正确方向吗?

由于提前,

干杯, 赞布罗塔。

回答

0

PreRender阶段注册您的控件太晚了。您可以在Load阶段代替:

protected override void OnLoad(EventArgs e) 
{ 
    base.OnLoad(e); 

    if (Page != null && Page.IsPostBack) 
    { 
     Page.RegisterRequiresRaiseEvent(this); 
     Page.RegisterRequiresPostBack(this); 
    } 
}