【问题标题】:Open new tab on button click?点击按钮打开新标签?
【发布时间】:2015-04-23 14:57:43
【问题描述】:

我想在按钮点击时打开新标签,点击的按钮存在于 iframe 上。

我用这个代码--

string tempabc = "javascript:window.open('ReportViewer.aspx?ReportType=" + rptnew + "&Billno=" + billno + "&Mail=" + "Mail" + "&CCMail=" + CCMail + "&Subject=" + txtSubject.Text + "&MailBody=" + txtMailBody.Text + "')";
ClientScript.RegisterStartupScript(this.GetType(), "script", tempabc, true);

但它不应该显示任何结果。

那么我可以使用这个代码-

Response.Redirect("ReportViewer.aspx?ReportType=" + rptnew + "&Billno=" + billno + "&Mail=" + "Mail" + "&CCMail=" + CCMail + "&Subject=" + txtSubject.Text + "&MailBody=" + txtMailBody.Text + "'");

它将在同一个 iframe 上打开下一页。

我能做什么。

在我的 .aspx 页面中,我可以使用该标签。

<body>
    <form id="form1" runat="server">
    <div>
        <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
        </asp:ToolkitScriptManager>
        <asp:Panel ID="PanelMail" runat="server">
            <asp:UpdatePanel ID="UpdatePanel15" runat="server">
                <ContentTemplate>
                      <table>                    
                         <tr>
                            <td colspan="2" style="padding-top: 14px; padding-bottom: 10px;">
                                <center>
                                    <asp:Button ID="BtnMail" Style="" Text="Mail" CssClass="btnn" runat="server" OnClick="BtnMail_Click"
                                        OnClientClick="return MailSubmit();" />
                                </center>
                            </td>
                        </tr>
                    </table>
                </ContentTemplate>
                <Triggers>
                <asp:AsyncPostBackTrigger ControlID="BtnMail" EventName="Click" />
                </Triggers>
            </asp:UpdatePanel>
        </asp:Panel>
    </div>
    </form>
</body>

【问题讨论】:

    标签: c# asp.net crystal-reports-2008


    【解决方案1】:

    这个呢?

    string tempabc = "javascript:window.open('ReportViewer.aspx?ReportType=" + rptnew + "&Billno=" + billno + "&Mail=" + "Mail" + "&CCMail=" + CCMail + "&Subject=" + txtSubject.Text + "&MailBody=" + txtMailBody.Text + "','_blank')";
    

    或者

    在按钮中添加formtarget="_blank" 属性

    或者

    <button  onclick="a()">Click Me</button> 
    <script>
    function a()
    {
        window.open('url', '_blank', 'width=300,height=200');
    }
    </script>
    

    如果您没有提及size,它将在new tab 中打开,否则为popup

    window.open('url', '_blank') - next tab
    window.open('url', '_blank','width=300,height=200') - popup
    

    【讨论】:

    • 这段代码也发生了同样的事情,没有显示任何响应。
    • 嗨@Abhishek 你检查过按钮中的formtarget="_blank" 属性吗?这是一个 html 5 标签。希望这对你有帮助
    • 嗨@Abhishek,请查看我编辑的答案(最后一个)希望对您有所帮助:-)
    【解决方案2】:

    尝试用这个替换您当前的tempabc 字符串:

    string tempabc = "javascript:window.open('ReportViewer.aspx?ReportType=" + rptnew + "&Billno=" + billno + "&Mail=" + "Mail" + "&CCMail=" + CCMail + "&Subject=" + txtSubject.Text + "&MailBody=" + txtMailBody.Text + "','_newtab')";
    

    添加了'_newtab' 属性以在新选项卡中打开它。

    希望对你有帮助。

    【讨论】:

      【解决方案3】:

      你也可以这样做

      <asp:Button ID="Button1" runat="server" Text="Button"
          onclick="Button1_Click" OnClientClick="document.forms[0].target = '_blank';" />
      

      编辑

      然后试试这个:

      <script type = "text/javascript">
       function SetTarget() {
           document.forms[0].target = "_blank";
       }
      </script>
      
      <asp:Button ID="Button1" runat="server" Text="Button"
          onclick="Button1_Click" OnClientClick = "SetTarget();" />
      

      这里可以放多个函数。

      【讨论】:

      • 先生,onClientClick 我可以检查一些验证,然后我可以在哪里使用此代码,但我会尝试它..
      • 是的,先生,我会检查它并应用到我的代码上,但它无法显示任何响应。
      • @Abhishek 你能告诉我你在.aspx 页面上做什么吗?
      • 在你的问题中..编辑你的问题@Abhishek
      • 先生,我无法显示,我可以尝试更多来编辑我的问题,但是在添加我的 .aspx 页面代码后,它会显示识别我的代码的错误我也可以缩进它但不允许我这样做发布更改。
      猜你喜欢
      • 2019-04-12
      • 2012-02-12
      • 1970-01-01
      • 1970-01-01
      • 2021-01-24
      • 1970-01-01
      • 2018-07-10
      • 2017-04-11
      • 2013-06-10
      相关资源
      最近更新 更多