停止OnClientClick =“aspnetForm.target ='_ blank';”从其他控制点击中解雇?

时间:2013-10-03 20:59:08

标签: c# javascript asp.net

我有一个页面,其中包含一个打开报告的链接按钮。在此链接按钮上如果有OnClientClick =“aspnetForm.target ='_ blank';”因此报告将在新窗口/选项卡中打开。这按预期工作。我也有一个常规按钮。

如果单击链接按钮,则第二个按钮在单击时也会打开一个新窗口。我如何阻止这种情况发生?

我真的不知道如何正确地表达问题所以请随意编辑问题。

4 个答案:

答案 0 :(得分:4)

您的ClientClick on LinkBut​​ton代码会修改整个表单目标。您可以添加

OnClientClick="aspnetForm.target ='_self';"

到第二个(常规)按钮。这将再次重新分配表格目标 - 这次是'自我'。

答案 1 :(得分:0)

问题是,当您单击第一个按钮时,您将重新分配aspnetForm.target的值。而不是这种方法,为什么不使用window.open呢?

OnClientClick="void(window.open('http://www.google.com')); return false;"

答案 2 :(得分:0)

在我看来,使用此方法的最佳解决方案是在单击此表单中包含的任何其他按钮时重置特定表单的目标。

window.document.forms[0].target = '';

如果您不喜欢这种方法,则可以在打开新标签页后的几分钟内使用setTimeout()触发同一行代码。

答案 3 :(得分:-1)

是否可以尝试渲染HTML锚点(而不是asp:linkbutton),并将href设置为适当的url并将target属性设置为_blank

<a href="urlOfThePage" target="_blank" >Click me</a>