2011-05-20 52 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