Tag: page refresh

如何在没有刷新ASP.NET Web窗体中的当前页面的情况下打开另一个选项卡?

我希望能够点击一个按钮,在点击时打开另一个标签。 在我的情况下,这是使用两个ASP.Net控件完成的,一个带有 标签的asp literal将其格式化为提交按钮,因为我需要它具有一些POSTfunction。 asp literal的代码如下所示: 使用给定的URL和_blank打开新选项卡。 我这次使用另一个asp控件,一个LinkButton ,在点击时运行一个事件,并用javascript代码触发提交asp literal的点击。 它看起来像这样: Do stuff 在DoStuff事件中,我需要运行一些代码,它使用上面提到的代码填充asp literal ,并在完成后触发,点击提交按钮,使用openWindowButton ID,如下所示: function InvokeReportFormClick() { document.getElementById(“openWindowButton”).click(); return false; } 使用ScriptManager.RegisterStartupScript方法添加单击代码。 一切都运行良好,LinkBut​​ton填充文字,然后点击它,文字打开一个选项卡。 唯一的问题是页面被重新加载,我想避免这种行为。 我在脚本结束时尝试了返回false,但是如果我只从javascript方法返回false,如上所示,页面仍然重新加载,我认为这是因为生成的单击asp literal 。 我可以添加我在asp literal输入的onclick事件上添加return false,如下所示: 但它停止打开我需要的标签。 我也尝试将asp:Linkbutton放在UpdatePanel控件中,如下例所示: Do stuff 但它仍然刷新页面,因为我仍然从asp literal点击猜测。 如果我在LinkButton旁边添加asp文字,页面不刷新,但我得到一个错误说 未捕获的TypeError:无法读取null的属性“click”。 我想这是因为页面没有重新加载,并且当单击操作发生时,页面中没有加载asp literal文本。 如何停止重新加载页面,并仍然保持这些按钮的相同function? 最好的祝福! 编辑 我已经注意到由asp literal提交的提交按钮不会重新加载表单,因为只需手动点击它就会打开新选项卡。 所以这种情况下的主要问题只是让asp LinkButton不会触发页面重载。 在.cs文件中,我使用此方法注册我的脚本,点击LinkBut​​ton后运行,如asp.net论坛上所建议: RegisterStartupScript(Page page, Type type, […]