按钮上的防止服务器回发单击

时间:2017-08-03 07:45:09

标签: asp.net webforms

我可以在点击按钮时避免postback(不要使用page_load方法),

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

我尝试了html按钮,asp buttonlink button,但没有达到我的目标。

有可能吗?

2 个答案:

答案 0 :(得分:4)

您可以使用OnClientClick。它将调用您要执行的函数(jquery函数),然后使用return false来避免pageload。在你的按钮中添加:

<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="yourfunction(); return false;" /> 

如果你想在没有回发的情况下调用函数后面的代码,那么有两种方法可以做到这一点:

  1. 使用UpdatePanel。 You can read this tutorial

  2. 或使用页面方法:

  3. 向页面添加静态方法,使用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

    希望它会帮助你......!

答案 1 :(得分:0)

如果要禁用回发,请使用javascript 试试下面的代码

<asp:button runat="server".... OnClientClick="myfunction(); return false;" />

通过这样做,它将取消回发