2008-10-09 81 views
11

在c#中,如何检查页面加载方法中是否单击了链接按钮?ASP.NET:检查page_load中的单击事件

我需要知道在点击事件被触发之前它是否被点击。

+0

如果你的代码是在OnClick事件依赖,那么你可以把在那个特定的代码OnPageRender覆盖(而不是Page_Load),因为它会在OnClick事件处理程序之后触发。 – snumpy 2015-08-12 13:32:01

回答

19
if(IsPostBack) 
{ 
    // get the target of the post-back, will be the name of the control 
    // that issued the post-back 
    string eTarget = Request.Params["__EVENTTARGET"].ToString(); 
} 
+0

你测试过了吗?应该有两个引导斜线 - “__EVENTTARGET” – 2008-10-09 18:39:11

2

检查请求参数__EVENTTARGET的值,看看它是否是问题链接按钮的ID。

2

按钮的UniqueID将在的Request.Form [ “__ EVENTTARGET”]

2

如果没有work.Try UseSubmitBehavior="false"

1

基于公认的答案和铁甲钢拳这个的答案可能是一个更完整的答案。

首先添加到.aspx一个按钮是这样的:

<asp:Button id="btnExport" runat="server" Text="Export" UseSubmitBehavior="false"/> 

然后在Page_Load方法:

if(IsPostBack){ 
    var eventTarget = Request.Params["__EVENTTARGET"] 
    // Then check for the id but keep in mind that the name could be 
    // something like ctl00$ContainerName$btnExport 
    // if the button was clicked or null so take precautions against null 
    // ... so it could be something like this 
    var buttonClicked = eventTarget.Substring(eventTarget.LastIndexOf("$") + 1).Equals("btnExport") 

} 
0

我刚刚得到了同样的麻烦,已经做的一些逻辑判断Page_Load方法来处理不同的事件(哪个按钮被点击)。

我意识到手臂得到如下例子。

前端ASPX源代码(我有ID的F2,F3,F6,F12的按钮。

<Button Style="display: none" ID="F2" runat="server" Text="F2:Cancel" OnClientClick="SeiGyo(this)" OnClick="F2_Click" /> 
    <Button Style="display: none" ID="F3" runat="server" Text="F3:Return" OnClientClick="SeiGyo(this)" OnClick="F3_Click" /> 
    <Button Style="display: none" ID="F6" runat="server" Text="F6:Run" OnClientClick="SeiGyo(this)" OnClick="F6_Click" /> 
    <Button Style="display: none" ID="F12" runat="server" Text="F12:Finish" OnClientClick="SeiGyo(this)" OnClick="F12_Click" /> 

后端aspx.cs源代码,我需要做的是判断哪个按钮Page_Load中被触发时被点击了。这似乎有点愚蠢,但作品。我希望这将有助于其他一些

Dictionary<string, string> dic = new Dictionary<string, string>(); 
foreach(var id in new string[]{"F2","F3","F6","F12"}) 
{ 
     foreach (var key in Request.Params.AllKeys) 
        { 
         if (key != null && key.ToString().Contains(id)) 
          dic.Add(id, Request[key.ToString()].ToString()); 
        } 
} 
相关问题