停止重新加载ASP.NET按钮的页面

时间:2013-05-04 08:51:47

标签: javascript asp.net vb.net aspbutton

NET应用程序,我已经插入了一个调用Javascript函数(OnClientClick事件)和VB.NET函数(OnClick事件)的按钮

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

问题是当我点击按钮时,它会刷新页面并删除文本框的内容。

我尝试在return false;事件上插入OnClienClick,但它没有执行OnClick事件。

如何避免重新加载页面?

P.S。:在Javascript函数的末尾打开一个新窗口window.open(newWindow.aspx),但我希望第一页保留用户在文本框中插入的值。

提前致谢:)

4 个答案:

答案 0 :(得分: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 :(得分:2)

或者您可以禁用提交行为。默认情况下,asp.net将按钮呈现为提交按钮。如果禁用提交行为,则会将按钮呈现为按钮类型

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

但是使用此代码,它不会触发服务器端事件“OnClick”

答案 2 :(得分:0)

如果您不打算使用C#Codebehind功能触发按钮,那么您不需要使用asp:Button。因此,您可以使用常规html。

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

html按钮更容易,更快捷。如果你使用asp:button,那么你应该使用clientid()函数来捕获控件以触发ajax。

答案 3 :(得分:0)

搜索与您发现的补丁相同的东西:

如果您调用方法服务器端,则可以在更新面板中使用AJAX,但这对我不起作用。但是您可以将所需的内容保存在Session中,这样就可以在Session持续使用为止。

// Save at SessionParameter the elementToSave we want.
this.Session["SessionParameter"] = elementToSave;

// Retrieve the info from the Session
ElementYouNeededToSave = (TypeOfTheElement)Session["SessionParameter"];

希望这对我的情况有所帮助。