14

在c#中,如何检查页面加载方法中是否单击了链接按钮?

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

4

6 回答 6

23
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();
}
于 2008-10-09T18:35:52.300 回答
4

如果那不起作用。尝试UseSubmitBehavior="false"

于 2015-01-28T04:07:24.307 回答
2

检查请求参数 __EVENTTARGET 的值,看看它是否是相关链接按钮的 id。

于 2008-10-09T18:35:21.270 回答
2

按钮的 UniqueID 将在 Request.Form["__EVENTTARGET"]

于 2008-10-09T18:36:56.323 回答
1

根据接受的答案和 RealSteel 的答案,这可能是一个更完整的答案。

首先在 .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")

}
于 2015-12-04T17:35:22.680 回答
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()); 
                    }
}
于 2017-04-20T00:19:14.260 回答