4

ボタンをクリックして新しいタブ/ウィンドウでページを開こうとしています.Googleでこのコードを取得しようとしましたが、機能しません。

誰でもこれで私を助けることができますか?

<asp:Button ID="btn" runat="Server" Text="SUBMIT" 
     OnClick="btnNewEntry_Click" OnClientClick="aspnetForm.target ='_blank';"/>

protected void btnNewEntry_Click(object sender, EventArgs e)
{
    Response.Redirect("CMS_1.aspx");
}

これを使用すると、エラーが発生します

   Microsoft JScript runtime error: 'aspnetForm' is undefined.
4

6 に答える 6

11

次のようなことができます:

<asp:Button ID="Button1" runat="server" Text="Button"
    onclick="Button1_Click" OnClientClick="document.forms[0].target = '_blank';" />
于 2014-07-22T11:05:28.313 に答える
8

あなたはより良いと思いませんか

<asp:HyperLink ID="HyperLink1" runat="server" 
            NavigateUrl="CMS_1.aspx" 
            Target="_blank">
    Click here
</asp:HyperLink>

なぜなら、で目的の動作を再現するには、上記のソリューションよりもはるかにクリーンに見えないボタンのイベントasp:Buttonを呼び出す必要があるためです。さらに、このようなシナリオを処理するためにあります。window.openOnClientClickasp:HyperLink

を使用してこれを複製する場合はasp:Button、これを実行します。

<asp:Button ID="btn" runat="Server" 
        Text="SUBMIT"
        OnClientClick="javascript:return openRequestedPopup();"/>

JavaScript関数。

var windowObjectReference;

function openRequestedPopup() {
    windowObjectReference = window.open("CMS_1.aspx",
              "DescriptiveWindowName",
              "menubar=yes,location=yes,resizable=yes,scrollbars=yes,status=yes");
}
于 2011-06-06T07:08:19.030 に答える
4

ここから何かを削除するだけでコードが機能するはずですが、既存のウィンドウ内の現在のページからリダイレクトされます

<asp:Button ID="btn" runat="Server" Text="SUBMIT" 

 OnClick="btnNewEntry_Click"/>    



protected void btnNewEntry_Click(object sender, EventArgs e)
 {
    Response.Redirect("CMS_1.aspx");
 }

そして、クライアント側のスクリプトを介してこれを行いたい場合は、この方法を使用してください

<asp:Button ID="BTN" runat="server" Text="Submit" OnClientClick="window.open('Default2.aspx')" />

私によると、新しいウィンドウサーバー側を開くだけでポストバックが返され、それは役に立たないため、クライアント側スクリプトを優先する必要があります..

于 2011-06-06T08:23:51.037 に答える
2

これが私が最終的に使用したものです。target を一時的に _blank に設定してから、元に戻します。

OnClientClick="var originalTarget = document.forms[0].target; document.forms[0].target = '_blank'; setTimeout(function () { document.forms[0].target = originalTarget; }, 3000);"
于 2013-08-28T21:31:13.753 に答える
1

ヘッダーに次を追加する必要があります。

<script type="text/javascript">
        function fixform() {
            if (opener.document.getElementById("aspnetForm").target != "_blank") return;

            opener.document.getElementById("aspnetForm").target = "";
            opener.document.getElementById("aspnetForm").action = opener.location.href;
            }
</script>

fixform()次に、ページの読み込みを呼び出します。

于 2012-04-26T06:40:15.740 に答える
1

Rout リダイレクトを使用できます。

protected void btnNewEntry_Click(object sender, EventArgs e)
{
    Response.RedirectToRoute("CMS_1"); 
}

次のような Global.asax ファイルでルーティング ロジックを定義する必要があります。

routes.MapPageRoute("CMS_1", "CMS_1", "~/CMS_1.aspx");

アプリケーション スコープ内の CMS_1 パターンによる要求はすべて CMS_1.aspx にリダイレクトされますが、URL では www.yoursite.com/CMS_1 のように表示されます

于 2012-09-28T23:42:16.087 に答える