单击按钮禁用回发

发布于 2024-12-06 07:34:30 字数 139 浏览 0 评论 0原文

我想在单击 后禁用回发。我尝试通过分配 onclick="return false" 来做到这一点,但在按钮中不起作用。

我该如何解决这个问题?

I want do disable postback after clicking a <asp:Button>. I've tried to do that by assigning onclick="return false", but in the button doesn't work.

How can I fix this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

单身情人 2024-12-13 07:34:30
onClientClick="return false"

应该这样做! Onclick 将引用 ASP.net 函数,onClientClick 将在 HTML 控件上呈现为 OnClick

onClientClick="return false"

That should do it! Onclick will refer to an ASP.net function, onClientClick will render as OnClick on the control in HTML.

岁月苍老的讽刺 2024-12-13 07:34:30

onclick 用于连接服务器端事件。您需要使用 OnClientClick 处理程序,例如

onclick is used to wire up your server side events. You need to use the OnClientClick handler such as <asp:button OnClientClick="return false;" />

巷子口的你 2024-12-13 07:34:30

我可以使用包含相关控件/元素的 UpdatePanel 来修复该问题。

I could fix that using an UpdatePanel which includes the implicated controls/elements.

稀香 2024-12-13 07:34:30

它对我来说是这样的:

:

function myfunction() {
            return false;
        }

:

<asp:ImageButton ID="ImageButton1" runat="server" Height="52px" Width="58px" OnClientClick="myfunction(); return false;"/>

It worked for me like this:

In <body>:

function myfunction() {
            return false;
        }

and in <head>:

<asp:ImageButton ID="ImageButton1" runat="server" Height="52px" Width="58px" OnClientClick="myfunction(); return false;"/>
以往的大感动 2024-12-13 07:34:30

使用这个:-

  someID.Attributes.Add("onClick", "return false;");

Use this:-

  someID.Attributes.Add("onClick", "return false;");
梦初启 2024-12-13 07:34:30

将您的 asp 按钮放入 Updatepanel 中,例如

<asp:UpdatePanel ID="updPnl" runat="server" UpdateMode="Conditional" RenderMode="Block">
  <ContentTemplate>
    <asp:Button ID="btnID" runat="server"  OnClick="btn_Click" />
  </ContentTemplate>
</asp:UpdatePanel>

Put your asp button to inside the Updatepanel like

<asp:UpdatePanel ID="updPnl" runat="server" UpdateMode="Conditional" RenderMode="Block">
  <ContentTemplate>
    <asp:Button ID="btnID" runat="server"  OnClick="btn_Click" />
  </ContentTemplate>
</asp:UpdatePanel>
临走之时 2024-12-13 07:34:30

看来这些答案都没有帮助我。我找到了解决方案。您不应使用 ASP.NET 按钮 ,而应使用 HTML 按钮。它工作得很好并且看起来与 ASP.NET 按钮一模一样。要让 HTML 按钮在服务器端提交,请使用属性 onserverclick

<input id="btnState" class="AddButtons" runat="server" type="button" value="Add State" onclick="swap('one', 'two');" />

对于我的代码,我使用 JS 在服务器端执行某些操作。 不会停止回发,但正如我所说,HTML 按钮解决了我的问题。

Seeing as none of these answers helped me. I found a solution. Instead of using the ASP.NET button <asp:Button>, you should use the HTML button. It worked perfectly and looks exactly like the ASP.NET button. To get the HTML button to submit on server side, you use the attribute onserverclick.

<input id="btnState" class="AddButtons" runat="server" type="button" value="Add State" onclick="swap('one', 'two');" />

For my code, I was using JS to do something on the server side. The <asp:Button> would not stop doing a post back but as I said, the HTML button fixed my problem.

北座城市 2024-12-13 07:34:30

既然您想在回发后执行此操作,我想您想防止双击回发?在这种情况下,您最好在第一次单击客户端后设置某种状态维护变量。作为一个简单的示例,

var clicked = false;
function AllowOneClick(){
   if(!clicked){
      clicked = true;
      return true;
    }
 return false;
 }

您然后设置 OnClientClick 在按钮上返回此方法结果,因此 OnclientClick="return AllowOneClick()"
当然,这仅适用于一个按钮,但它应该可以让您了解总体情况。

Since you want to do it after the postback, I presume you want to prevent double click postbacks? In this case you are best off having some sort of state maintaining variable that you set after the first click on the client side. As a simple example

var clicked = false;
function AllowOneClick(){
   if(!clicked){
      clicked = true;
      return true;
    }
 return false;
 }

You then set OnClientClick to return this method result on your button so OnclientClick="return AllowOneClick()"
This will of course only work for one button, but it should give you the general idea.

铁憨憨 2024-12-13 07:34:30

就我而言,上述解决方案都不适合我。

我想要的是首先调用客户端的函数,然后停止向服务器的回发。我的解决方案是在调用客户端函数之前简单地添加 return 关键字,即:

<asp:Button Runat=Server OnClientClick="return fyFunction;">

我的客户端脚本在最后一行代码中包含 return false

In my case none of the solutions above worked for me.

What I wanted was to first call a function on the client side and then halt the postback to the server. My solution was to simply add the return keyword before calling my client-side function, i.e.:

<asp:Button Runat=Server OnClientClick="return fyFunction;">

My client-side script contains return false in the last line of code.

冰火雁神 2024-12-13 07:34:30

通过使用 UseSubmitBehavior="false" 您可以禁用 onclick 的回发

by using UseSubmitBehavior="false" you can disable postbacks of onclick

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文