我的ajax中ClientScriptmanager中的RegisterStartupScript为什么不能弹出对话框

解决方案 »

  1.   

    如果你用RegisterStartupScript的话,js就被注册到页面开始
    这时候你得保证你的dialog已经rander了,否则肯定是 XXX is undefined建议这样时候用Page.ClientScript.RegisterClientScriptBlock,将脚本注册到页面最后,页面上元素rander完就调用你的
    dialog
      

  2.   

    ClientScriptmanager中的RegisterStartupScript
    如果页面有异步postback,这样注册的js不能起效,
    你的页面使用了updatepanel,使用ScriptManager的
      

  3.   

    服务器端在Butten事件中如下代码:     
    ClientScriptManager cs = this.ClientScript;
         cs.RegisterOnSubmitStatement(this.GetType(),"H", "return window.confirm( 'do  you want leave?')");//弹出对话框
     客户端:
    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:Button runat="server" Text="Button" onclick="Unnamed1_Click" 
                ID="Button1" />
            </ContentTemplate>
        </asp:UpdatePanel>
            </form>
    运行时但是没有弹出对话框?
      

  4.   

    应该是ScriptManager.RegisterStartupScript(UpdatePanel1,UpdatePanel1.GetType(),"H", "return window.confirm( 'do you want leave?')",true)
      

  5.   

    谢谢,但是也不能,不过上面的源码我写错了是:
    cs.RegisterStartupScript(this.GetType(), "HelloWorld", "<script>alert('ddd');</script>");//弹出对话框
    但是弹不出来。。
      

  6.   

    ClientScriptManager cs = this.ClientScript;
     ...?
    我是说:用ClientScriptManager而不是ScriptManager
      

  7.   

    UpdatePanel 不能使用this.ClientScript;
      

  8.   

    你用了这个this.GetType() 肯定不行。你换个updatepanel中的button试试
      

  9.   

    ScriptManager.RegisterStartupScript(this, this.GetType(), "a", "<script>alert('');</script>", false); 
    以前遇到过,不记得了。
    ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "click", "alert('提示信息')", true);就可以正常的弹出  alert  对话框了。注:如果在页面中有多个  UpdatePanel,如果每个  UpdatePanel  的  UpdateMode  都是“always”[默认值]的话,那么你使用那个  UpdatePanel  的实例作为参数都可以;如果每个  UpdaePanel  的  UpdateMode=conditional,那么你必须使用正在更新的那个  UpdatePanel  作为参数,这样脚本才能起作用。
    百度搜:
    asp.net ajax 弹不出对话框
    应解决问题
      

  10.   

    不好意思,说反了,应该是如果你用RegisterStartupScript的话,js就被注册到页面最后罪过,罪过