2013-05-04 84 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。