【问题标题】:button click event automatically fires按钮点击事件自动触发
【发布时间】:2012-05-05 21:35:40
【问题描述】:

我的情况是这样的,我的用户控件中有一个 asp 按钮

  <asp:Button ID="btnSubmit"
        Text="Send Notification" class="submit-btn01"   onclick="btnSubmit_Click1" runat="server" />

在我的浏览器中,当我刷新页面时,按钮单击事件会自动发生。我无法弄清楚这是什么问题..

【问题讨论】:

  • 您是否尝试删除 class="submit-bt01" 并再次仔细检查?
  • 我已经做了..但是没用..
  • 你能检查一下这个按钮的视图源,它是如何呈现的。同时确保你没有从 jQuery 或 page_load 方法触发这个按钮事件处理程序。
  • 我没看懂@Deepu你能解释一下吗
  • 是提交按钮吗?也许,在您按下刷新按钮后,您的浏览器会执行页面提交。在浏览器中打开一个新选项卡并导航到您的网站,点击事件会再次触发吗?

标签: c# asp.net


【解决方案1】:

你的问题有点含糊。听起来您有以下情况之一:

场景 A:

  1. 通过 URL 加载页面
  2. 点击提交,返回刷新页面。
  3. 在页面上按 F5,您会收到一条消息,询问您是否要重新提交表单,并且“提交”按钮操作再次发生

场景 B:

  1. 通过 URL 加载页面
  2. 在页面上按 F5 并执行提交按钮操作

对于场景 A;

如果您想避免重新回发,您应该在 btnSubmit_Click1 事件处理程序中执行 Response.Redirect() 到当前页面,如下所述: asp.net prevent form submission twice

对于场景 B;

  1. 您是否在页面中执行了任何 javascript,这会导致其在每次页面加载时表现不同?
  2. 您是否通过其他页面的回发访问该页面?
  3. 您是否在代码隐藏端的页面生命周期中做任何奇怪/花哨的事情?例如。 CreateChildControls?

...如果是场景 B,而这些答案是否定的,那么我很想知道问题的最终原因是什么,因为我无法想象为什么页面在加载之间会表现不同并重新加载。

【讨论】:

  • 我的情况与场景 A 中的情况完全相同:感谢您为我解释事情。
  • 在我目前的情况下,我无法进行 Response.Redirect。谁能告诉我任何其他想法
  • 您不能在您的页面中执行此操作吗:? protected override void button_onclick(object sender, EventArgs e) { SendMail(); Response.Redirect(Request.Url.AbsoluteUri); ...请注意,重要的是您不是重定向到新页面,而是重定向到您已经在的页面,但重定向将执行 GET 而不是 POST
【解决方案2】:

如果是 POST,则刷新可能会重复执行的最后一个操作
由于最后一个操作是使用正在重放的按钮提交表单。

【讨论】:

  • @D Stanley 我认为你是对的(这是一个 POST )。你能提出任何解决方案吗
  • 这取决于您希望它的行为方式如何。重定向到新页面是最简单的。
猜你喜欢
  • 1970-01-01
  • 2016-07-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多