System.Web.UI.ScriptManager.RegisterStartupScript(UpdatePanel2, this.GetType(),"", "alert('11')", true);这句我放在aspx没有问题
但放在DBUtility的cs里面就提示ScriptManager没有引用。
网上说的添加system.web.extention我都添加了,但问题还存在。

解决方案 »

  1.   

    ScriptManager  是全局的    必须的
    你添加了么 
      

  2.   

    他在  System.Web.UI命名空间下。。你说你自己写的帮助类里面会不会报错
      

  3.   


    System.Web.UI已经添加了,会报错
      

  4.   

    在类库项目里面添加js文件,在“属性”窗口里面的“生成操作”选择“嵌入的资源”
                        <asp:ScriptReference Assembly="xxxxx.Web.LocalizingScriptResources" Name="xxx.Web.LocalizingScriptResources.xx.js" />
                    </Scripts>
      

  5.   

    你这个DBUtility是在什么地方的?是一个页面吗?
      

  6.   

    在DBUtility里调用ScriptManager本来就是错误的
      

  7.   

    按照这个写法,RegisterStartupScript会到UpdatePanel2.Page内部的最高层去查找其注册的ScriptManager控件,你可以调试看看UpdatePanel2.Page中有没有这类控件。
      

  8.   

    楼主那样写发不妥,要想能够在任何地方调用js,你不能假想那个最终执行的页面一定有updatepanel2或者其他特定控件,并且这样的常用方法应该封装,临时写了个简单的代码,仅供参考:    //jsAlert方法定义
        public static void Alert(string pMessage) {
            //此处省略参数处理,请自行添加
            string _JString = "alert('"+pMessage+"');";
            Page _thisPage = (Page)HttpContext.Current.Handler;
            string _JSKey = Guid.NewGuid().ToString();
            System.Web.UI.ScriptManager.RegisterStartupScript(
                _thisPage, _thisPage.GetType(), _JSKey, _JString, true);
            }//我们假设类库名称jsHelper,在任何后台cs文件中也可以使用
    jsHelper.Alert("11");
    不过,我们实际上是禁止在业务代码中引用UI层的全局对象的,
    这种情况都是先抛出自定义的特定异常,然后再应用程序的边界处:UI报告或者处理这个异常