[英]Disable postback at click on a button
我想在单击<asp:Button>
后禁用回发。 我试图通过分配onclick="return false"
来做到这一点,但在按钮中不起作用。
我怎样才能解决这个问题?
onClientClick="return false"
应该这样做! Onclick
将引用 ASP.net 函数, onClientClick
将在 HTML 控件上呈现为OnClick
。
它对我来说是这样的:
在<body>
:
function myfunction() {
return false;
}
并在<head>
:
<asp:ImageButton ID="ImageButton1" runat="server" Height="52px" Width="58px" OnClientClick="myfunction(); return false;"/>
onclick
用于连接您的服务器端事件。 您需要使用OnClientClick
处理程序,例如<asp:button OnClientClick="return false;" />
<asp:button OnClientClick="return false;" />
用这个:-
someID.Attributes.Add("onClick", "return false;");
我可以使用包含相关控件/元素的 UpdatePanel 来解决这个问题。
看到这些答案都没有帮助我。 我找到了解决方案。 您应该使用 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 按钮解决了我的问题。 如果这对您有帮助,请标记为答案或投票。
把你的 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>
就我而言,上述解决方案都不适合我。
我想要的是首先在客户端调用一个函数,然后停止回发到服务器。 我的解决方案是在调用我的客户端函数之前简单地添加return
关键字,即:
<asp:Button Runat=Server OnClientClick="return fyFunction;">
我的客户端脚本在最后一行代码中包含return false
。
通过使用 UseSubmitBehavior="false" 您可以禁用 onclick 的回发
既然您想在回发后执行此操作,我想您想防止双击回发? 在这种情况下,您最好拥有在客户端第一次单击后设置的某种状态维护变量。 作为一个简单的例子
var clicked = false;
function AllowOneClick(){
if(!clicked){
clicked = true;
return true;
}
return false;
}
然后,您将 OnClientClick 设置为在您的按钮上返回此方法结果,因此OnclientClick="return AllowOneClick()"
这当然仅适用于一个按钮,但它应该为您提供总体思路。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.