0

我目前有一个 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>"));
}
4

2 回答 2

2

AjaxControlToolkit 的模态弹出窗口非常适合这种事情。

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

它仍然在 asp.net 框架内,因此您仍然可以获得所有服务器端的优点,并且您始终可以在其中弹出一个用户控件,以便您可以将其视为单独的“页面”

如果您希望能够从客户端访问它们,请记住将对象上的 cclientidmode 保持为静态或可预测的。

于 2013-05-29T12:26:06.853 回答
0

用javascript来做。不要打开新的Window,只要在前面设置一个div,改变它的内容。

最简单的方法是使用 Jquery Dialog:

http://api.jqueryui.com/dialog/

于 2013-05-29T11:42:22.090 回答