2013-05-04 60 views
2

.NET應用程序的停止頁面重載,我已經插入一個按鈕調用JavaScript函數(OnClientClick事件)和VB.NET功能(OnClick事件)一個ASP.NET按鈕

<asp:Button OnClientClick="jsfunction() " OnClick="vbfunction" Text="Submit" runat="server" /> 

的問題是,當我點擊按鈕時,它刷新頁面並刪除文本框的內容。

我試圖在OnClienClick事件中插入return false;,但它不執行OnClick事件。

如何避免頁面重新加載?

P.S .:在Javascript函數的末尾打開一個新窗口window.open(newWindow.aspx),但我希望第一頁保留用戶在文本框中插入的值。

感謝提前:)

+0

你需要使用AJAX – Ian 2013-05-04 08:55:32

+0

該文本框不應該失去它的價值,除非你手動清除它,或者你沒有使用ViewState – Ian 2013-05-04 08:57:03

+0

@lan 1-因爲我從來沒有使用AJAX你能解釋我如何使用它來解決我的問題? 2 - 我使用HTML文本框,其內容在頁面刷新時被刪除。這不會發生,如果我使用asp文本框,但我必須使用HTML文本框(我還沒有決定這:()在此先感謝... – user2217039 2013-05-05 14:41:35

回答

5

您需要在兩個位置使用return語句。

OnClientClick="return jsfunction();" 

function jsfunction() 
{ 
    // 
    return false; 
} 

OR,您可以在函數調用之後返回false,如下所示。

OnClientClick="jsfunction(); return false;" 

注意,如果你想要做回發條件,那麼你需要返回true或false。

OnClientClick="return jsfunction();" 

function jsfunction() 
{ 
    if(conditionForPostBack) 
     return true; 
    else 
     return false; 
} 
+1

「我已嘗試插入返回false; OnClienClick事件,但它不執行OnClick事件。「 – Ian 2013-05-04 08:55:13

+0

拒絕投票的原因是什麼? – Adil 2013-05-04 09:01:08

+0

我已經解釋過了.OP已經使用了它並且工作正常,但由於回發被」return false「阻止,所以它不是他們想要的。很確定他們正在尋找AJAX – Ian 2013-05-04 09:04:28

2

或者您可以禁用提交行爲。默認情況下,asp.net呈現按鈕作爲提交按鈕。如果禁用提交行爲,它將使按鈕,按鈕式

<asp:Button UseSubmitBehavior="false" OnClientClick="jsfunction() " OnClick="vbfunction" Text="Submit" runat="server" /> 

但有了這個代碼,如果你不打算觸發與C#代碼隱藏功能的按鈕,它會不會觸發服務器端事件「點擊」

+0

但似乎他們*想要*執行OnClick以及,只是沒有頁面重新加載 – Ian 2013-05-04 09:02:55

+0

是啊,似乎但他們之前沒有提及它.. :) – 2013-05-04 09:03:34

+0

Adil的答案將解決問題,如果他希望有條件回發 – 2013-05-04 09:04:45

0

,那麼你不需要使用asp:Button。因此你可以使用一個普通的html。

<button id='btn_1' onclick='ajax_function()'>Button</button> 

html按鈕更容易和更快。如果你使用asp:button,那麼你應該使用clientid()函數來捕獲控件來觸發ajax。