弹出与ASP.网络按钮单击未被阻止的弹出窗口拦截器

本文关键字:窗口 ASP 网络 按钮 单击 | 更新日期: 2023-09-27 18:15:47

我目前有一个ASP。Net按钮点击事件,在注册一个新的启动脚本之前做一些事情(包括改变会话变量)。也就是说,当用户点击按钮时,他们的弹出窗口拦截器会阻止弹出窗口,即使它是由用户事件触发的;我想浏览器不会这么看。

protected void ContinueButton_Click(object sender, EventArgs e)
{
    if (agreement.Checked)
    {
        string eid = Request.QueryString["eid"];
        Session["TestAgreement"] = "Agreed";
        openNewWindow("Exams/exam.aspx?id=" + courseCode, "height=760, width=1000, status=yes, toolbar=no, menubar=no, location=no, scrollbars=1");
    }          
}
private void openNewWindow(string url, string parameters)
{
    ClientScript.RegisterStartupScript(this.GetType(), "Exam", String.Format("<script>window.open('" + url + "', '', '" + parameters + "');</script>"));
}

弹出与ASP.网络按钮单击未被阻止的弹出窗口拦截器

AjaxControlToolkit的模式弹出可以很好地处理这类事情。

http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/ModalPopup/ModalPopup.aspx

仍然在asp.net框架内,所以你仍然可以得到所有服务器端的好处,你可以在里面弹出一个usercontrol,这样你就可以把它当作一个单独的"页面"

请记住,如果您希望能够从客户端命中对象,请将对象上的clientidmode保持为静态或可预测的。

用javascript来做。不打开新窗口,只需在前面设置一个div并更改其内容。

最简单的方法是使用Jquery Dialog: http://api.jqueryui.com/dialog/