我使用的是 vs.net2005 ,装的是徽软的 Ajax1.0 用到了,ScriptManager 和 UpdatePanel,我放了一个 Timer 控件,20 秒刷新一次protected void Timer1_Tick(object sender, EventArgs e)
{
   if(realinfo == true)
   {
       //要求在此写弹出一个 showModalDialog 模态窗口
   }
}如果用:Response.Write 输出以下 javascript 的话<script language="javascript">
function select_value()
{
var returnvalue =  window.showModalDialog("Mule.aspx",window,"dialogWidth:400px;DialogHeight=300px;center: yes;help:no;resizable:no;status:no");

}
</script>我试过,不通过,请各位高手帮帮忙!

解决方案 »

  1.   

    不要使用Response.Write,用ClientScript.RegisterClientScriptBlock替换 
    这样看看 
    语法如下ClientScript.RegisterClientScriptBlock(this.GetType(), "", "<script>alert('自己看!')</script>");
      

  2.   


    我试着不用  Response.Write ,改用  ClientScript.RegisterClientScriptBlock如下:protected void Timer1_Tick(object sender, EventArgs e) 

       if(realinfo == true) 
       { 
           
           ClientScript.RegisterClientScriptBlock(this.GetType(), "", " <script >alert( '自己看! ') </script >");
       } 
    } 可是,运行的时候,根本没有反应,只有当我把前台aspx 页面 UpdatePanel  下面加入这样的代码后,<asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <Triggers> 
    <asp:PostBackTrigger ControlID="Timer1" /> 
    </Triggers>  Timer 过了5秒后开始执行代码,弹出的窗口,但是IE 确能看到很明显的刷新屏幕,这也失去了 ajax 的作用啊,我是不想让用户看到IE在刷新啊,如果刷新,还用 AJAX 干 什么啊?--------其实,我的实际意思是要弹出一个窗口页面的:ClientScript.RegisterClientScriptBlock(this.GetType(), "", "<script>window.open ('Pop.aspx', 'newwindow', 'height=450, width=550, top=120,left=250, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no');</script>");
      

  3.   

    输出的变成下面的试试
    <script language="javascript"> 
    select_value();
    function select_value() 

    var returnvalue =  window.showModalDialog("Mule.aspx",window,"dialogWidth:400px;DialogHeight=300px;center: yes;help:no;resizable:no;status:no"); } 
    </script>