1

次のコードを使用していますが、機能していません。しかし、3.5では正常に動作しています。誰かが理由を説明でき、asp.net 4でこのコードをどのように効果的に使用できるか?

OnClientClick="aspnetForm.target ='_blank';"

<asp:Button ID="Button1" runat="server" Text="Button" 
         onclick="Button1_Click" OnClientClick='aspnetForm.target="_blank";' />

背後にあるコード:

 protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Redirect("Default.aspx");
    }
4

1 に答える 1

2

asp.net 4 の新しい Predictable ClientID 設定がこの問題の原因だと思います。

controlRenderingCompatibilityVersion を 3.5 に戻し、ClientId を AutoID に設定すると、再び機能します。

しかし、最善の解決策は、javascript でこれを行うことです。

<script language="javascript" type="text/javascript">
    function openWin(url) {
        var wnd = window.open(url, 'title', 'width=600,height=400,toolbar=1');
        wnd.focus();
    }
</script>

ASP.NET ボタン

<asp:Button ID="openButton" runat="server" Text="Button"           
    onclick="btnOpenPop_Click" />

コードビハインド

protected void btnOpenPop_Click(object sender, EventArgs e)
{
    string url = "http://www.yoururl.com";
    ClientScript.RegisterStartupScript(this.GetType(), "OpenWin", "<script>openWin('" + url + "')</script>");
}
于 2012-12-31T08:06:04.417 に答える