asp:Button不会触发onclick事件

时间:2012-05-09 15:57:46

标签: asp.net aspbutton

我有一个像

这样的按钮
<asp:Button ID="Button1" runat="server" Text="Submit"  onclick="RedirectToLocker"  
                 OnClientClick="return false;" UseSubmitBehavior="false" />

和代码隐藏中的方法如

  public void RedirectToLocker(object sender, EventArgs e)
        {
            Response.Redirect(ConfigurationManager.AppSettings["LockerLoginURL"]);

        }

但是当我点击按钮时,它没有点击方法中的代码。如果我删除OnClientClick =“return false;”然后按钮提交表单并转到错误的页面。我做错了什么?

编辑:我正在使用OnClientClick =“return false;”代码,因为没有它,按钮由于某种原因作为它嵌套的表单的提交,并立即重定向到表单操作URL而不是命中我的代码。

3 个答案:

答案 0 :(得分:2)

当clientide事件处理程序返回false时,将省略回发。

OnClientClick="return false;" // <-- no postback

所以你要么需要删除它,要么告诉我们你为什么要从js-onclick事件中返回false。如果Response.Redirect转到了错误的页面,您可能想要更改它。

修改:通过将表单的Action设置为另一个网址,您将重定向到另一个页面。然后,您可以将Button的PostBackUrl设置为与当前页面相同的URL。然后它会击中代码隐藏。

答案 1 :(得分:0)

您需要删除OnClientClick="return false;"才能运行服务器端方法。

如果浏览器重定向到错误的页面,请检查LockerLoginURL中的web.config应用程序设置值。这应该与您重定向到的URL匹配。

将其更改为正确的网址。

答案 2 :(得分:0)

删除 OnClientClick =“return false;”