2011-05-20 22 views
0

就是這樣。我需要讀取一個服務器控件事件,它會在Init之後「發生」,但我需要在Init期間執行它。信息在那裏,我該如何解決?ASP.NET在Page_Init中讀取事件

編輯:

具體來說,我試圖找到其菜單項的菜單被點擊了。它需要在Page_Init中完成,因爲它驅動了一些其他代碼(必須存在於Page_Init中)。

回答

1

您可以輕鬆地識別哪些控件引起該事件的東西,如:

public static Control GetPostBackControl(Page page) 
{ 
Control control = null; 

string ctrlname = page.Request.Params.Get("__EVENTTARGET"); 
if (ctrlname != null && ctrlname != string.Empty) 
{ 
    control = page.FindControl(ctrlname); 
} 
else 
{ 
    foreach (string ctl in page.Request.Form) 
    { 
     Control c = page.FindControl(ctl); 
     if (c is System.Web.UI.WebControls.Button) 
     { 
      control = c; 
      break; 
     } 
    } 
} 
return control; 
} 

http://ryanfarley.com/blog/archive/2005/03/11/1886.aspx

解除雖然我從來沒有真正需要的事件數據我已經成功使用此之前 - 只是對事件的認識被解僱。

+0

如果我還需要數據? – Michael 2011-05-20 16:10:09

+0

它將在請求的某個地方 - 當你說讀取服務器控制事件時,你能詳細說明你正在嘗試實現什麼以及正在處理的控件/事件類型。謝謝。 – iandayman 2011-05-20 16:42:23

+0

答案是:Request.Params.Get(「__ EVENTARGUMENT」) – Michael 2011-05-20 17:04:37