2010-09-21 106 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); 
    } 
}