ASP.net页面局部刷新的情况下,后台代码如何弹出一个新的asp.net窗口,Response.Write("<script>window.open('alarmdialog.aspx', 'newwindow','height=850, width=1300, top=150, left=500, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o, status=no')</script>");这个不行

解决方案 »

  1.   

    因为局部刷新是是异步的,所以你Response.Write的东西就作为ajax的结果返给前台了,而没有真正渲染在界面上,所以这样是不行的。
    异步必定有回调函数,你在回调函数中解析返回的结果,在回调函数中打开这个页面即可!
      

  2.   

    正常的 asp.net 注册 jaavscript 脚本的方法是可以在前端执行脚本的。你应该学习 asp.net 的正常规范的写法,而不是 Response.Write。
      

  3.   

    因为局部刷新是是异步的,所以你Response.Write的东西就作为ajax的结果返给前台了,而没有真正渲染在界面上,所以这样是不行的。
    异步必定有回调函数,你在回调函数中解析返回的结果,在回调函数中打开这个页面即可!我是用的timer加UpdatePanel,Triggers局部刷新的,只有一个time_tick函数,我不知道回调函数是什么,可以讲详细一些吗?谢谢了
      

  4.   


    我是用的timer加UpdatePanel,Triggers局部刷新的,只有一个time_tick函数,我不知道回调函数是什么,可以讲详细一些吗?谢谢了
      

  5.   

    你  前台 是不是 放了 一个updatepanel 的控件,如果是放了 这个控件 把 这个控件去掉就可以,  这个控件不是完美的 AJAX 会冲突的。
      

  6.   

    updatepanel 这个东西我还是用不习惯,呵呵,后来就转了jquery的ajax,一下子就顺畅了。
    如果想转的话,参考一下:http://www.cnblogs.com/acles/articles/2385648.html
      

  7.   

    是啊,如果我去掉就不能实现局部刷新功能了吧?
    建议你以后用 AJAX 不要用微软的 ,说好听点    不是完美的 AJAX,说难听点很垃圾,
    如果你以后还用AJAX 技术  尽快学习 自己写AJAX, 原始的 js 来操作AJAX 写法太复杂,强力推荐 Jquery的 AJAX。
      

  8.   

    是啊,如果我去掉就不能实现局部刷新功能了吧?
    建议你以后用 AJAX 不要用微软的 ,说好听点    不是完美的 AJAX,说难听点很垃圾,
    如果你以后还用AJAX 技术  尽快学习 自己写AJAX, 原始的 js 来操作AJAX 写法太复杂,强力推荐 Jquery的 AJAX。
    特别是updatepanel  这个控件  看似很强大 其实会引发很多问题,比如 图片上传,文件上传,操作IFAME 等等 亲身经历,血的教训.
      

  9.   

     ScriptManager.RegisterStartupScript(UpdatePanel, UpdatePanel.GetType(), "", "<script>retig();</script>", False)这是vb.net 的  你在客户端写个 JS函数 
    function retig(){
    alert('hello!')
    };
      

  10.   

    是啊,如果我去掉就不能实现局部刷新功能了吧?
    建议你以后用 AJAX 不要用微软的 ,说好听点    不是完美的 AJAX,说难听点很垃圾,
    如果你以后还用AJAX 技术  尽快学习 自己写AJAX, 原始的 js 来操作AJAX 写法太复杂,强力推荐 Jquery的 AJAX。我用Angular.js 写了个单页面程序。在考虑用不用UpdataPanel,每一款js库也好,框架也好,都会提供一种AJAX服务
    听你这么一说 UpdataPanel 好像真的是垃圾
      

  11.   

     Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript'>alert('');</script>");