链接button属性在新标签中打开?
在我的应用程序中,我有一些链接button,但是当我右键点击它们时,我不能(它们处于禁用模式)find菜单项Open in new tab
Open in new window
或Open in new window
。
如何显示这些菜单项?
代码示例:
<asp:LinkButton id="lbnkVidTtile1" runat="Server" CssClass="bodytext" Text='<%#Eval("newvideotitle") %>' />
从文档 :
使用LinkButton控件在网页上创build一个超链接样式的button。 LinkButton控件具有与HyperLink控件相同的外观,但具有与Button控件相同的function。 如果要在单击控件时链接到另一个网页,请考虑使用HyperLink控件。
由于这不是标准意义上的链接,因此控件上没有Target
属性( HyperLink
控件确实有一个Target
) – 它试图从文本链接执行PostBack到服务器。
根据你想要做什么你可以:
- 使用
HyperLink
控件,并设置Target
属性 - 向
OnClientClick
属性提供一个方法,以打开一个新的窗口到正确的位置。 - 在处理PostBack的代码中,在PageLoad上添加一些JavaScript来打开一个新的窗口。
尝试通过添加以下onClientClick事件。
OnClientClick =“aspnetForm.target ='_ blank';”
所以点击它会调用Javascript函数将会在News选项卡中打开相应的链接。
<asp:LinkButton id="lbnkVidTtile1" OnClientClick="aspnetForm.target ='_blank';" runat="Server" CssClass="bodytext" Text='<%# Eval("newvideotitle") %>' />
这是你的标签。
<asp:LinkButton ID="LinkButton1" runat="server">Open Test Page</asp:LinkButton>
这里是你的代码背后的代码。
LinkButton1.Attributes.Add("href","../Test.aspx") LinkButton1.Attributes.Add("target","_blank")
希望这会对某人有所帮助。
编辑要使用模板字段内的链接button执行相同操作,请使用以下代码。
使用GridView_RowDataBound事件来查找链接button。
Dim LB as LinkButton = e.Row.FindControl("LinkButton1") LB.Attributes.Add("href","../Test.aspx") LB.Attributes.Add("target","_blank")
这不是完美的,但它的工作原理。
<asp:LinkButton id="lbnkVidTtile1" runat="Server" CssClass="bodytext" Text='<%# Eval("newvideotitle") %>' OnClientClick="return PostToNewWindow();" /> <script type="text/javascript"> function PostToNewWindow() { originalTarget = document.forms[0].target; document.forms[0].target='_blank'; window.setTimeout("document.forms[0].target=originalTarget;",300); return true; } </script>
- LinkButton执行HTTP POST操作,你不能在这里改变post目标。
- 并非所有浏览器都支持将表单发送到新的目标窗口。
- 为了发布,你必须改变你的“表格”的目标。
- 你可以使用一些JavaScript解决方法来改变你的POST目标,通过改变窗体的目标属性,但浏览器会给用户一个警告(IE Does),这个页面试图在新窗口上发布数据,你想继续等。
尝试find生成的aspx中的表单元素的ID,你可以改变目标像…
getElementByID('theForm').target = '_blank' or 'myNewWindow'
当LinkButton Enabled属性为false时,它只是呈现一个标准的超链接。 当你右键单击任何禁用的超链接,你不会得到任何打开的选项。
尝试
lbnkVidTtile1.Enabled = true;
如果我误解了,我很抱歉。 我可以确保你了解LinkButton的目的吗? 这是给出一个超链接的外观,但一个button的行为。 这意味着它将有一个锚定标记,但有一个JavaScript连线,执行一个回发到页面。 如果你想链接到另一个页面,那么在这里推荐你使用一个标准的HyperLink控件。
它引发错误。
Microsoft JScript运行时错误:'aspnetForm'未定义
<asp:LinkButton ID="LinkButton1" runat="server" target="_blank">LinkButton</asp:LinkButton>
使用target =“_ blank”,因为它会创build锚点标记。 以上代码生成以下HTML
<a id="ctl00_ContentPlaceHolder1_LinkButton1" target="_blank" href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$LinkButton1','')">LinkButton</a>