单击按钮禁用回发

时间:2011-09-25 19:19:48

标签: c# asp.net postback

我想点击<asp:Button>后禁用回发。我试图通过分配onclick="return false"来做到这一点,但是按钮不起作用。

我该如何解决这个问题?

10 个答案:

答案 0 :(得分:13)

onClientClick="return false"

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

答案 1 :(得分:3)

onclick用于连接服务器端事件。您需要使用OnClientClick

<asp:button OnClientClick="return false;" />处理程序

答案 2 :(得分:1)

看到这些答案都没有帮助我。我找到了解决方案。您应该使用HTML按钮,而不是使用ASP.NET按钮<asp:Button>。它工作得很好,看起来就像ASP.NET按钮。要在服务器端提交HTML按钮,请使用属性onserverclick

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

对于我的代码,我使用JS在服务器端执行某些操作。 <asp:Button>不会停止回复,但正如我所说,HTML按钮解决了我的问题。如果这有助于你,请标记为答案或投票。

答案 3 :(得分:1)

这对我有用:

<body>

function myfunction() {
            return false;
        }

<head>

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

答案 4 :(得分:0)

既然你想在回发后做这件事,我想你想要防止双击回发?在这种情况下,您最好使用在客户端第一次单击后设置的某种状态维护变量。作为一个简单的例子

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

然后设置OnClientClick以在按钮上返回此方法结果,以便OnclientClick="return AllowOneClick()" 这当然只适用于一个按钮,但它应该给你一般的想法。

答案 5 :(得分:0)

我可以使用包含隐含控件/元素的UpdatePanel来解决这个问题。

答案 6 :(得分:0)

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

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

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

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

答案 7 :(得分:0)

使用UseSubmitBehavior =&#34; false&#34;你可以禁用onclick的回发

答案 8 :(得分:0)

使用: -

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

答案 9 :(得分:0)

将您的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>

希望这是有帮助的