当前位置:编程学习 > JAVA >>

AJAX中弹出窗口连续弹出 .

对于前段时间提到过的“AJAX中弹出窗口连续弹出 ”的问题,提供了一种解决方案:将弹出窗口过程在前台js中实现,即可每次都弹出相同内容窗口。
 
对于这个解决方案,在部署到服务器时又遇到了问题,服务器为ie6,也许不兼容弹出窗口的js,弹出窗口的内容无法加载。
 
因此开始寻求第二个解决方案:
 
从本质原理出发,对于同一内容窗口第二次没有弹出的原因是,后台调用弹出窗口的代码完全相同(相同方法,方法参数也相同)
 
如果每次后台弹出窗口代码有变化就会引起ajax刷新,因而每次都会执行后台代码
 
从这一解决方案出发:
 
将后台弹出窗口方法改为:
 
protected void lnkTab_Click(object sender, EventArgs e)
    {
        Session["childQX"] = 1;
        if (id1 == "0")
        {
            ScriptManager.RegisterStartupScript(UpdatePanel1, GetType(), "onclick", "showTab2('" + hiddPropId.Value + "')", true);
            id1 = "1";
        }
        else
        {
            ScriptManager.RegisterStartupScript(UpdatePanel1, GetType(), "onclick", "showTab3('" + hiddPropId.Value + "')", true);
            id1 = "0";
        }
        //AjaxPanel2.
        //Refush();
    }
 
通过切换调用不同js来弹出窗口,不同js都是相同的内容,只是赋予了不同的名字。
 
如此每次后台调用代码都会刷新,便可以连续弹出窗口。
 
此原理简化一下,用当前时间作为参数的方案,更简洁:
 
protected void lnkTab_Click(object sender, EventArgs e)
    {
        Session["childQX"] = 1;
 
        ScriptManager.RegisterStartupScript(UpdatePanel1, GetType(), "onclick", "showTab2('" + hiddPropId.Value + ",'DateTime.Now')", true);
         id1 = "1";
    }
 
每次调用,参数值均不同,因而导致每次都会刷新,而执行后台代码。
补充:web前端 , JavaScript ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,