【问题标题】:C# Target="_blank" in a LinkButton链接按钮中的 C# Target="_blank"
【发布时间】:2012-02-13 04:00:12
【问题描述】:

是否有可能在LinkButton 中有一个target="_blank"...我的似乎不起作用

<asp:LinkButton runat="server" ID="g31" Text="PDF" 
    CommandArgument='<%# DataBinder.Eval(Container.DataItem,"productID") %>'
    CommandName='<%# DataBinder.Eval(Container.DataItem,"documentID") %>'
    OnCommand="linkbutton_showpdf" target="_blank">
</asp:LinkButton>

或者我必须使用不同的按钮格式吗?

【问题讨论】:

  • 我的代码中有一个 Response.Redirect...我正试图在另一个窗口中打开它。
  • 我可能会错过它,但我没有看到任何target="_blank" 的迹象。
  • 你可以在这里得到答案:stackoverflow.com/questions/2637087/…
  • LinkButton 的作用类似于Button 控件。您希望它能够促进这种行为吗?如果绝对必要,请使用 javascript 或超链接。

标签: c# target linkbutton


【解决方案1】:

你可以像这样使用链接按钮

target="_blank" 替换为OnClientClick="window.document.forms[0].target='_blank';"

【讨论】:

  • 我犯了一个错误...它是w 而不是W。谢谢你。它现在正在工作
  • 这将使该表单中的每个链接在单击链接按钮后变为“target=_blank”
  • 您需要添加setTimeout(function () { window.document.forms[0].target = ''; }, 0);
【解决方案2】:

目前没有一个答案是正确的,即使&lt;a&gt;标签在asp.net中也不是正确答案。

使用超链接按钮。甚至还有一个目标属性的属性。

<asp:HyperLink runat="server" 
    NavigateUrl='http://rrs.com/aspx/Equipment/EquipmentType.aspx'
    Target="_blank">
        Create/Edit Part Types
</asp:HyperLink>

【讨论】:

    【解决方案3】:

    您可以使用具有target='_blank' 属性的超链接控件。但是,如果必须使用 LinkBut​​ton 控件,则可以添加 OnClientClick 属性,然后调用 JavaScript 函数打开弹出窗口

    window.open();
    

    【讨论】:

      【解决方案4】:

      我正在使用 Devsaninii 的答案,我更改了表单的目标,并发现在单击更改目标的链接后,我的其余页面切换到新窗口的不良行为。这是有道理的,但不受欢迎。

      我用一些链接打开文件并用其他链接加载新页面。我希望文件在新窗口中打开,我希望新页面在同一个窗口中打开。但是在我更改目标之后,一切都在一个新窗口中。我本可以为每个linkbutton 添加一个客户端点击处理程序,但这太麻烦了。

      这就是我想出的:

      我向我的linkbuttons 添加了一个类,该类应该有一个新窗口作为目标,然后我将这段 jQuery 小片段添加到我的脚本中:

      $(function() {
          $('a').click(function() {
              if ($(this).hasClass('changeTarget')) {
                  window.document.forms[0].target = '_blank';
              } else {
                  window.document.forms[0].target = '_self';
              }
          });
      });
      

      现在当按下应该有一个新窗口的linkbutton 时,它会在一个新窗口中打开,当按下其他任何东西时,它会在同一个窗口中打开。

      【讨论】:

        【解决方案5】:

        ASP.NET Web 表单中的 LinkBut​​ton 只是使用 JavaScript 提交底层表单,因此 target="_blank" 实际上并没有做任何事情。要打开一个新窗口,您可以使用 LinkBut​​ton 的 OnClientClick 事件通过 JavaScript 修改“表单”的目标属性。您还需要在单击后撤消修改(使用 setTimeout),否则进一步的按钮单击将无意中以新选项卡为目标。

        <asp:LinkButton ID="uiNewTabExample" Text="Open New Tab" OnClick="uiNewTabExample_Click" OnClientClick="window.document.forms[0].target = '_blank'; setTimeout(function () { window.document.forms[0].target = '' }, 0);" 
        runat="server" />
        

        【讨论】:

          【解决方案6】:

          在查看了这些答案后,没有一个是我想要的(通过按钮外观执行此操作),我最终使用了超链接控件,但使用了与常规按钮相同的 css 样式:

          .button {
          
              background-color:#011745;
              color:white;
              padding:7px 12px 7px 12px;
              margin:3px;
              border-style:none;
              font-size:12px;
          
          }
          
          .button:hover {
          
              background-color:#336699;
              color:white;
              padding:7px 12px 7px 12px;
              margin:3px;
              border-style:none;
              font-size:12px;
          
          }
          

          看起来和他们一模一样!如果你想要一个在新窗口中打开链接的按钮,就像我一样,那几乎是完美的。在一组表格单元格中,它显示的按钮比常规按钮低一点,所以我将其设置为:“position:relative; top:-2px;”这就是诀窍。我还必须强制使用前色为白色:

          <asp:HyperLink ID="btnSummaryReport" Target="_blank" runat="server" Text="SUMMARY REPORT" CssClass="button" ForeColor="white" Font-Size="8" style="position:relative; top:-2px" />
          

          【讨论】:

            【解决方案7】:

            添加到上面的@Devsainii 答案。

            OnClientClick="window.document.forms[0].target='_blank';" 属性添加到您的LinkBut​​ton,然后在后面的代码中,只需使用Response.Redirect("~/AnotherPage.aspx") 导航到另一个页面。

            【讨论】:

              【解决方案8】:

              只需渲染一个将 href 设置为适当 url 的锚并将 target 属性设置为 _blank 它就会将 url 打开到新窗口。

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

              【讨论】:

              • 这对于 asp.net 是不正确的。请参阅下面的答案。
              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-07-06
              • 2015-08-16
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多