单击链接按钮时,无法从更新面板内部打开新窗口

Cannot open a new window from inside update panel on linkbutton click

本文关键字:内部 新窗口 窗口 按钮 链接 更新 单击      更新时间:2023-09-26

我在div弹出窗口的UpdatePanel中有一个链接按钮。在Button_Click上,我希望通过javascript打开一个新窗口。我尝试了ScriptManager.RegisterStartupScript和ScriptManager.RRegisterClientScriptBlock,但窗口没有打开。

    <asp:UpdatePanel ID="UpdatePanel2" runat="server">
                                            <ContentTemplate> 
                <form class="message-form" action="#">
                    <fieldset>
    <asp:LinkButton ID="LinkButton1" runat="server" class="btn-facebook" Text="facebook" OnClick="LinkButton1_Click"></asp:LinkBu
tton>
                    <label for="TextBox1">Or send a message on Blissdate here:</label>
                <div class="textarea">
                    <asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine" Rows="10" Columns="30"></asp:TextBox><asp:Label ID="lbl" runat="server" />
                </div>
                <div class="btn-holder">
                    <asp:LinkButton ID="LinkButton2" runat="server" class="btn-send" Text="send" OnClick="LinkButton2_Click"></asp:LinkButton>
                </div>
            </fieldset>
        </form>

protected void LinkButton1_Click(object sender, EventArgs e)
    {
           DataRow[] row1 = ds.Tables[0].Select("FB_Id='" + HiddenField3.Value + "'");
           string url = row1[0].ItemArray[3].ToString();
           lbl.Text = url;
           //ScriptManager.RegisterClientScriptBlock(this, GetType(), "newPage", "window.open('" + url +');", true);
           ScriptManager.RegisterClientScriptBlock(this, GetType(), "newpage", "open('" + url + "');", true);
    }


<script type="text/javascript">
    function open(url) {
        var w = window.open(url, '', 'width=1000,height=600,toolbar=0,status=0,location=0,menubar=0,directories=0,resizable=1,scrollbars=1');
        w.focus();
    }
</script>

如果代码有问题,请告诉我。。

open函数重命名为其他函数。如果您在浏览器中启动javascript控制台,您将看到许多对open的递归调用。我不是javascript专家,但我相信您遇到了堆栈溢出异常。

<script type="text/javascript">
function customOpen(url) {
    var w = window.open(url, '', 'width=1000,height=600,toolbar=0,status=0,location=0,menubar=0,directories=0,resizable=1,scrollbars=1');
    w.focus();
 }
</script>

然后更改您的注册:

ScriptManager.RegisterClientScriptBlock(this, GetType(), "newpage", "customOpen('" + url + "');", true);

检查您的浏览器弹出窗口阻止程序是否已启用。请禁用它,它将工作。。。。