防止服务器回发按钮单击

Posted

技术标签:

【中文标题】防止服务器回发按钮单击【英文标题】:Prevent Server Postback on Button Click 【发布时间】:2018-01-10 16:31:32 【问题描述】:

我可以在按钮单击时避免postback(不要进入 page_load 方法),

尽管如此,直接调用处理程序。

我尝试了html 按钮、asp buttonlink 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

希望对你有所帮助..!

【讨论】:

以上是关于防止服务器回发按钮单击的主要内容,如果未能解决你的问题,请参考以下文章

防止在回发时重新加载 iframe

Telerik:使用 RadButton 确认对话框防止回发

在 ASP.NET 代码中通过 javascript 重置 Jquery 验证后停止回发

在 asp.net webform 中单击按钮时避免回发

通过调用 ASP.NET 按钮单击从 jQuery 模态对话框回发

C# 密码字段在回发修复时返回空,但需要在按钮单击时清除该字段