12

私は次のようなURLを持っています

Response.Redirect("~/webpages/frmCrystalReportViewer.aspx?VoucherNo=" + txtVoucherNo.Text + "&VoucherDate=" + txtVoucherDate.Text + " &strUserCode=" + strUserCode.ToString() + "&strCompanyCode=" + strCompanyCode.ToString() + "&formName=frmPaymentVoucher");

このURLをブラウザの新しいタブで開きたいです。以下のコードを試しました...

string pageurl = "~/webpages/frmCrystalReportViewer.aspx?VoucherNo=" + txtVoucherNo.Text + "&VoucherDate=" + txtVoucherDate.Text + " &strUserCode=" + strUserCode.ToString() + "&strCompanyCode=" + strCompanyCode.ToString() + "&formName=frmPaymentVoucher";
Response.Write("<script>");
Response.Write("window.open('" + pageurl + "','_blank')");
Response.Write("</script>");

また、私は以下を試しました

string pageurl = "~/webpages/frmCrystalReportViewer.aspx?VoucherNo=" + txtVoucherNo.Text + "&VoucherDate=" + txtVoucherDate.Text + " &strUserCode=" + strUserCode.ToString() + "&strCompanyCode=" + strCompanyCode.ToString() + "&formName=frmPaymentVoucher";
 ScriptManager.RegisterStartupScript(Page, Page.GetType(), "popup", "window.open('" + pageurl + "','_blank')", true);

私も試しました

<asp:Button ID="btnPrint" Text="Print" runat="server" OnClick="btnPrint_Click" OnClientClick="aspnetForm.target ='_blank';"/>

しかし、すべてが機能していません。別の解決策を教えてください。前もって感謝します。

4

3 に答える 3

14

~でURL を使用していますが、javascript で認識されません。ResolveUrlメソッドを使用して~でURL を処理する必要があります。

要求しているクライアントで使用できる URL に変換します (c)msdn

あなたの場合:

Response.Write(String.Format("window.open('{0}','_blank')", ResolveUrl(pageurl)));
于 2013-06-03T12:10:33.043 に答える
4

JavaScript の助けを借りて、フォームの target プロパティを _blank に設定して、ページを新しいウィンドウで開くことができます。以下を試してください

ASP.Net ボタンがあります

 <asp:Button ID="btnPrint" runat="server" Text="PRINT BILL" Onclick="btnPrint_Click"  OnClientClick="SetTarget();" />

以下で説明するように、ASP.Net ボタン コントロールの SetTarget() JavaScript 関数 OnClientClick イベントを呼び出しています。

<script type = "text/javascript">
 function SetTarget() {
     document.forms[0].target = "_blank";
 }
</script>

以下で説明するように、btnPrint_Click メソッドの OnClick イベント コントロールを呼び出します。

 protected void btnPrint_Click(object sender, EventArgs e)
    {
         Response.Redirect("ReportViewer1.aspx");
    }
于 2016-04-24T12:54:24.497 に答える