我有gridview
HeaderTemplate
,其中包含LinkButton
。当我点击按钮时,我想在new tab
<asp:TemplateField>
<HeaderTemplate>
<asp:LinkButton ID="lnkbtn" runat="server" OnClientClick="SetTarget();" OnClick="lbtn_Click">Topics</asp:LinkButton>
</HeaderTemplate>
<ItemTemplate>
........
</ItemTemplate>
我的JavaScript
<script type = "text/javascript">
function SetTarget() {
document.forms[0].target = "_blank";
}
</script>
OnClick
事件是
protected void lbtn_Click(object sender, EventArgs e)
{
Response.Redirect("http://www.google.com/");
}
这是在新标签中打开链接。
但我在LinkButton
之外还有其他gridview
用于其他流程,例如Saving
数据等。
<asp:LinkButton ID="LinkButton1" runat="server">Save</asp:LinkButton>
但是,当我甚至点击此按钮时,它会打开新标签。如何阻止它们在新标签页中打开
答案 0 :(得分:0)
您是否有理由想要在服务器端重定向?你可以做到
function redirectToGoogle(){
window.open('google.com');
return false;
}
和
<asp:LinkButton ID="lnkbtn" runat="server" OnClientClick="return redirectToGoogle();" ....
当您设置ASP表单的目标时,每个链接或表单帖子都将以新窗口为目标。因此,您将不得不在每个其他LinkButton点击或表单提交上撤消表单的目标。
答案 1 :(得分:0)
所有的拳头,请参阅This Link
重要信息
链接按钮是超链接样式按钮,所有属性都相同 一个按钮,但它只显示在超链接样式中。如果您愿意 单击控件时链接到另一个Web页面,请考虑使用 HyperLink控件。
尝试:
编辑2:
你这样使用..
<asp:LinkButton ID="LinkButton1" runat="server">Save</asp:LinkButton>
在gridview
或类似的内容......
然后您想在新窗口中导航所有超链接的URL。
所以,你可以动态设置网址。
像
<asp:TemplateField HeaderText="Log" ItemStyle-Width="15%">
<ItemTemplate>
<asp:HyperLink runat="server"
NavigateUrl='<%# GetUrl(Eval("Base_Id"))%>'
text="Log" target="_blank"></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
的.cs
protected string GetUrl(object id)
{
return "http://somelink&RecordId=" + id;
}
编辑1:
JavaScript
window.open()
javascript:window.open('xyz.aspx')
像
<asp:LinkButton ID="lb1" runat="server" OnClientClick="javascript:window.open('xyz.aspx')">click me</asp:LinkButton>
答案 2 :(得分:0)
当您的OnClientClick
JavaScript设置表单目标时,例如
<script type = "text/javascript">
function SetTarget() {
document.forms[0].target = "_blank";
}
</script>
您正在为该页面上的每个Button
和LinkButton
设置目标。然后,所有按钮将在一个新的选项卡中打开,这可能不是您想要的。这是因为正在为(一个)页面表单设置目标。
使用ASP.NET Web表单,每个网页只有一个页面表单。使用浏览器>查看源代码
...
<body>
<form method="post" action="./SearchIndex.aspx" id="form1">
...
如果使用此方法,最好这样做
<script type="text/javascript">
function SetTarget() {
window.document.forms[0].target = '_blank';
setTimeout(function () { window.document.forms[0].target = ''; }, 0);
}
</script>
在其中为该按钮设置页面表单目标的位置,单击(在新标签页中打开),然后在此之后立即重置。