防止服务器回发按钮单击
Posted
技术标签:
【中文标题】防止服务器回发按钮单击【英文标题】:Prevent Server Postback on Button Click 【发布时间】:2018-01-10 16:31:32 【问题描述】:我可以在按钮单击时避免postback
(不要进入 page_load 方法),
尽管如此,直接调用处理程序。
我尝试了html
按钮、asp button
、link button
,但没有达到我的目标。
有可能吗?
【问题讨论】:
Call event handler without postback, Is it possible?
是的,您只需将按钮和其他内容包装在 更新面板 中即可。
How to disable postback on an asp Button的可能重复
@Prabhat 我尝试了相同的解决方案,但没有成功。
【参考方案1】:
如果您想禁用回发,请使用 javascript 试试下面的代码
<asp:button runat="server".... OnClientClick="myfunction(); return false;" />
这样做会取消回发
【讨论】:
不,我想调用服务器端处理程序,而不在服务器上回发。您的解决方案不会将程序流传送到服务器端。【参考方案2】:您可以使用OnClientClick
。它将调用您要执行的函数(jquery 函数),然后使用 return false 来避免页面加载。在您的按钮中添加:
<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="yourfunction(); return false;" />
如果你想在没有回发的情况下调用代码隐藏函数,那么有两种方法可以做到这一点:
使用更新面板。 You can read this tutorial。
或使用页面方法:
给你的页面添加一个静态方法,用 WebMethod 属性修饰:
[WebMethod]
public static void MyMethod(string Param)
在您的 ScriptManager 中启用页面方法:
<asp:ScriptManager EnablePageMethods="True" ... />
然后您可以从客户端调用它,使用 JavaScript(OnClientClick
按钮的事件)。
PageMethods.MyMethod("value", successCallback, errorCallback);
更多详情请阅读:http://msdn.microsoft.com/en-us/library/bb398998.aspx
希望对你有所帮助..!
【讨论】:
以上是关于防止服务器回发按钮单击的主要内容,如果未能解决你的问题,请参考以下文章
Telerik:使用 RadButton 确认对话框防止回发
在 ASP.NET 代码中通过 javascript 重置 Jquery 验证后停止回发