2017-08-03 31 views
2

我能避免postback上按一下按鈕(不要在Page_Load方法不走),防止服務器回傳的按鈕點擊

儘管,直接調用處理程序。

我試過html按鈕,asp buttonlink button,但沒有得到我的目標。

可能嗎?

+0

'調用無回發的事件處理程序,是否有可能?'是的,只需將您的按鈕和其他內容包裝到**更新面板**中即可。 – Prabhat

+0

可能重複的[如何禁用asp按鈕回發](https://stackoverflow.com/questions/683746/how-to-disable-postback-on-an-asp-button) – VDWWD

+0

@Prabhat我試過同樣的解決方案,但沒有成功。 –

回答

3

您可以使用OnClientClick。它會調用你想要執行的函數(jquery函數),然後使用return false來避免頁面加載。在您的按鈕添加:

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

如果你想打電話不回傳後面的功能代碼,那麼有兩種方法可以做到這一點:

  1. 使用的UpdatePanel。 You can read this tutorial

  2. 或使用頁面方法:

添加一個靜態方法到您的網頁,飾有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

希望它會幫助你..!

0

使用JavaScript,如果你想禁用後置背 做這個嘗試下面的代碼

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

,將取消回發的

+0

不,我想調用服務器端處理程序,而無需在服務器上回發。您的解決方案不會將程序流傳送到服務器端。 –