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 回答